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

    Unable to get sensorless homing working....

    Scheduled Pinned Locked Moved
    General Discussion
    5
    27
    812
    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.
    • gloomyandyundefined
      gloomyandy @Chriss
      last edited by

      @Chriss H is nothing to do with number of steps it is a speed threshold, basically stall detection is not enabled until the motor is moving faster than this threshold. That allows you to use a more sensitive S setting without it triggering during the acceleration phase of the move. If you are not getting the stall detection pretty much immediately with a S setting of -63 then there is probably something wrong elsewhere. You could take a look at our stm32 documentation, it may help, ignore all of the stuff about board.txt settings. https://teamgloomy.github.io/sensorless.html

      Chrissundefined 1 Reply Last reply Reply Quote 0
      • Chrissundefined
        Chriss @gloomyandy
        last edited by Chriss

        @gloomyandy Thanks for the explanation.
        I did not find any new information from your page. I still think that I do it the right way.

        M915 P1:2 S-64 R1 F0 H10
        ok
        G1 H4 X260 F10000
        Warning: Driver 1 stalled at Z height 0.00
        Warning: Driver 2 stalled at Z height 0.00
        ok
        

        And it does not move anymore. That is expected I guess. But it does not stop when I use S-10:

        M915 P1:2 S-10 R1 F0 H10
        ok
        G1 H4 X260 F10000
        Warning: Driver 1 stalled at Z height 0.00
        Warning: Driver 1 stalled at Z height 0.00
        Warning: Driver 2 stalled at Z height 0.00
        ok
        

        The First message came right at the moment the roolhead reached the physical limit, the other two at the end of the G1. There must be something totally wrong. I will write a simplifies config.g with the absolute minimum settings I need to test with that, it seems to me that I lost control of my config. 😉

        Cheers, Chriss

        gloomyandyundefined 1 Reply Last reply Reply Quote 0
        • gloomyandyundefined
          gloomyandy @Chriss
          last edited by

          @Chriss said in Unable to get sensorless homing working....:

          I did not find any new information from your page. I still think that I do it the right way.

          I think you may have missed some things. In particular, the sample homing file that we provide. Using stealthchop for homing can be a little tricky because there are various "automatic" settings that need to be taken care of for correct operation. All of the various steps (like performing a small motor move at the start of the process and the various delays and waits) are there for a reason and are based on the recommendations from the TMC datasheets (which I'd strongly recommend you take a look at). I'm not saying that not having these is the cause of your current problems, but we have found that most/all of them are needed to ensure a reliable, safe and repeatable homing operation.

          In your example if the head does not move with S-63 then it sounds like the endstops are actually working. Perhaps S-10 is simply not sensitive enough. As above I'd also say that a value of H10 is probably too low, the default of 200 was selected for a good reason by the Duet folks.

          Anyway good luck!

          Chrissundefined 2 Replies Last reply Reply Quote 0
          • Chrissundefined
            Chriss @gloomyandy
            last edited by

            @gloomyandy

            Anyway good luck!

            That did the trick. 🙂

            For reference: I changed the config to a bare minimum, and yes, I saw the pauses and the M400 from your config example. I decided not to test with them because all of the timeouts are lower than I need to write or copy and paste the code to the telnet session.

            I got it working now with V40 at the M569:

            M569 P0.2 S1 D3 V40 
            M569 P0.1 S0 D3 V40
            
            M201 X1000 Y1000
            M913 X60 Y60
            M566 X0 Y0
            M201.1 X1000 Y1000
            M915 P1:2 S-20 R0 H200
            

            That is not very much tuned but it is "working" now and the toolhead stops where it is supposed to stop. I think that I have underestimated the impact of the V parameter at M569.

            I should spend a bit more time in finding the "optimal" settings for the speed etc but this should be a peace of a cake since I have a working setup now. It was frustrating to turn the screws and did not get anything to work, this is over now luckily and I can start with the tuning and the polishing.
            .

            Thanks for your technically and mentally support.

            Cheers, Chriss

            1 Reply Last reply Reply Quote 0
            • Chrissundefined
              Chriss @gloomyandy
              last edited by

              @gloomyandy Let me ask me one more question please.....

              I came a step further but there is still a strange behaviour.

              This is my curernt homex.g:

              M915 P1:2 S64 R0 H200 	; Reduce stall detection sensitivity  
              
              M98 P"/macros/print_scripts/xy_current_low.g"	; Lower AB currents
              G91 	            ; relative positioning
              M400				; Wait for all moves to stop
              G1 H2 X0.01	;Z0.01	; Move X a small amount to enable
              
              M400				; Wait for all moves to stop
              G4 P200				; Delay to allow TMC to detect stopped state
              G1 H1 X-20 F8000	; Back away from endstop
              M400				; Wait for all moves to stop
              
              M915 P1:2 S-20 R0 H200	; Configure motor stall detection
              G4 P200					; Delay to ensure settings are made
              G1 H4 X260 F8000		; Move towards endstop until it stalls
              M400					; Wait for all moves to stop
              

              It works so far that the motor stops when it hits the physical end and the axis is homed after that execution in 90% of the cases. But the X position is totally random after that, sometimes it is 372, the next time 273,1 etc.

              I do not understand how that can happen, my config.g is clear here:

              ; Axis Limits
              M208 X0 Y0 Z0 S1                                ; set axis minima
              M208 X249 Y257 S0                          ; set axis maxima
              

              I still play with a minimal config.g for now

              
              ; Hardware: Duet Mini 5+ 
              ;           Toolboard 1.1 LC
              ;           PalenlDue 7" PanelDueFirmware-logo-3.5.0-rc8-7.0i.bin
              ; Stepper XY = LDO 0,9° 2Amax  LDO-42STH40-2004MAC
              ; Stepper Z = LDO 1,8°  2Amax  LDO-42STH48-2004AC
              ; Stepper E = LDO 1,8   1Amax  LDO-42STH20-1004ASH
              
              
              ; Enable network
              if {network.interfaces[0].type = "ethernet"}
                  M552 P0.0.0.0 S1
              else
                  M552 S1
              
              ; Network
              M586 P0 S1  ; enable HTTP
              M586 P1 S1  ; enable FTP
              M586 P2 S1  ; enable Telnet
              
              
              M98 P"/sys/variables.g" ; Source the varaibles files
              
              
              G90         ; send absolute coordinates...
              M83         ; ...but relative extruder moves
              M550 P"v2"  ; set printer name
              M669 K1     ; 1=select CoreXY mode   0=Cadasian
              
              
              G4 S1        ; wait 1s for expansion boards to start
              
              ;;; Drives
              ;X
              M569 P0.2 S1 D3 V10    ; physical drive 0.2 goes forward
              M584 X0.2              ; Map the stepper to X
              ;Y
              M569 P0.1 S0 D3 V10    ; physical drive 0.1 goes backward
              M584 Y0.1              ; Map the stepper to Y
              
              ; Stepper settings
              M350 X16 Y16 I1                         ; configure microstepping with interpolation
              M92 X160 Y160  							; set steps per mm (800 from manuall, measured 823
              M98 P"/macros/print_scripts/speed_printing.g"   ; Accelerations and speed
              M906 X1400 Y1400 I30                 ; set motor currents (mA) and motor idle factor in per cent  (E stepper max 1A)
              M201.1 X1000 Y1000                              ; Set reduced acceleration for special move types
              M84 S120                                        ; Idle timeout
              
              ; Axis Limits
              M208 X0 Y0 Z0 S1                                ; set axis minima
              M208 X249 Y257 S0                          ; set axis maxima
              
              
              ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
              
              ;; Endstops -- Display status with: M119
              ; Old endstops with HAL sensors
              ;M574 Y2 S1 P"0.io5.in"  ; Y
              ;M574 X2 S1 P"!0.io6.in" ; X
              ; Stall detection
              M574 Y2 S3                  ; Y Sensorless
              M574 X2 S3                  ; X Sensorless
              ;M915 P1:2 S-20 R0 H200      ; Configure motor stall detection
              M915 P1:2 S-20 R0 H200      ; Configure motor stall detection
              

              Should I change the home behaviour to home at 0 and not on max anymore? Would that make any difference?

              Cheers, Chriss

              Chrissundefined 1 Reply Last reply Reply Quote 0
              • Chrissundefined
                Chriss @Chriss
                last edited by

                @gloomyandy
                Forget it..... I just found that in the docu:

                sets the X and Y endstops to sensorless homing at the axes low end. This is required.
                

                Cheers, Chriss

                gloomyandyundefined 1 Reply Last reply Reply Quote 0
                • gloomyandyundefined
                  gloomyandy @Chriss
                  last edited by

                  @Chriss Actually I think your problem is this line:

                  G1 H4 X260 F8000
                  

                  You are using a H4 move you need to be using a H1 move. See: https://docs.duet3d.com/User_manual/Reference/Gcodes#g0g1-h-and-s-parameter

                  Oh and where was the line you quoted in the documentation?

                  Chrissundefined 1 Reply Last reply Reply Quote 0
                  • Chrissundefined
                    Chriss @gloomyandy
                    last edited by

                    @gloomyandy True.. you are right... two mistakes... the G1 and the endstops at the wrong side.

                    https://docs.duet3d.com/User_manual/Connecting_hardware/Sensors_stall_detection#background-on-stall-detection
                    746bc0ab-e150-45d4-82e3-613da276f21a-image.png

                    Is that not true anymore?

                    Cheers, Chriss

                    gloomyandyundefined dc42undefined 2 Replies Last reply Reply Quote 0
                    • gloomyandyundefined
                      gloomyandy @Chriss
                      last edited by

                      @Chriss Honestly I'm not sure, that statement in the docs is a little ambiguous and I can't think of any reason why stall detection would only work on the low end. Having said that I've never used it on the high end. Try it and see if it works.

                      Chrissundefined moth4017undefined 2 Replies Last reply Reply Quote 0
                      • Chrissundefined
                        Chriss @gloomyandy
                        last edited by

                        @gloomyandy
                        I tried it all the time with the high end and we know now that it is working after the parameter "nightmare". Maybe something for @droftarts ? I will play a bit more with x at the low end for now. I would like to have Y on the high end for optical reasons. Let's see how it works there than.

                        Cheers, Chriss

                        droftartsundefined 2 Replies Last reply Reply Quote 0
                        • droftartsundefined
                          droftarts administrators @Chriss
                          last edited by

                          @Chriss I've asked @dc42 if that is still correct, and just having a look through the release notes to see if/when it changed.

                          Ian

                          Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                          1 Reply Last reply Reply Quote 1
                          • droftartsundefined
                            droftarts administrators @Chriss
                            last edited by droftarts

                            @Chriss I can't see anywhere where this condition has changed, so I would assume that you should home at the low end. I haven't heard back from @dc42 as yet.

                            Ian

                            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                            Chrissundefined 1 Reply Last reply Reply Quote 0
                            • Chrissundefined
                              Chriss @droftarts
                              last edited by

                              @droftarts I will do. Let's wait what David will tell us.

                              droftartsundefined 1 Reply Last reply Reply Quote 0
                              • droftartsundefined
                                droftarts administrators @Chriss
                                last edited by

                                @Chriss @dc42 says

                                It's always been possible to put it at the high end.

                                So I’ve no idea why that statement is in the instructions! I’ll test it and update documentation tomorrow.

                                Ian

                                Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                                Chrissundefined 1 Reply Last reply Reply Quote 0
                                • Chrissundefined
                                  Chriss @droftarts
                                  last edited by

                                  @droftarts I can tell you that it is working on the high end. My problem came from the G1 H4 instead of using G1 H1. 😉

                                  1 Reply Last reply Reply Quote 0
                                  • moth4017undefined
                                    moth4017 @gloomyandy
                                    last edited by moth4017

                                    @gloomyandy i use high end sensorless homing ok. i use Y high , x low

                                    <

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

                                      @Chriss the sentence is "For example, M574 X1 S2 and M574 Y1 S3 sets the X and Y endstops to sensorless homing at the axes low end". It's an example. However, it's unclear to me what the following sentence "This is required." refers to, or why it's there at all.

                                      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

                                      droftartsundefined 1 Reply Last reply Reply Quote 0
                                      • droftartsundefined
                                        droftarts administrators @dc42
                                        last edited by

                                        @dc42 It was in the dozuki page, seems to refer to it being a requirement to set M574 to S3, now I reread it. Not that sensorless homing has to be at the low end. I'll edit the text to make that clear.

                                        Ian

                                        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                                        Chrissundefined 1 Reply Last reply Reply Quote 0
                                        • Chrissundefined
                                          Chriss @droftarts
                                          last edited by

                                          @droftarts @dc42

                                          I think that the "This is required" reveres to the part 'Change your endstop type to "sensorless" in config.g. T' when I read now slowly through it. Anyway, it is a bit misleading, at least for none native speakers and I would remove it.

                                          And the next step is not 100% correct in my opinion, it says: ". Do not press "yes" for restart. There are other changes that must still be made."
                                          Yes, other changes are required, but none oof them are in the config.g and can be done without a reboot or a reread of the config.g.

                                          Cheers, Chriss

                                          droftartsundefined 1 Reply Last reply Reply Quote 0
                                          • droftartsundefined
                                            droftarts administrators @Chriss
                                            last edited by

                                            @Chriss I've changed the wording on those steps. As it's all required, I took out the 'required'! Also made it clear sensorless homing can be either end of the axis, and that a restart is optional at that point.
                                            https://docs.duet3d.com/en/User_manual/Connecting_hardware/Sensors_stall_detection#configuring-sensorless-homing

                                            Ian

                                            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

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