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

    Quad Z Sensorless Homing + BLTouch

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    4
    13
    428
    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.
    • graybilldustinundefined
      graybilldustin
      last edited by

      I have read through the sections about sensorless homing in the documentation and several posts here and i'm still not having any luck. I have a Corexy machine with 4 Z steppers and a BLTouch on the hotend. I would like to home Z all the way to the top and use the BLTouch for mesh bed levelling. I am not able to get the Z steppers to detect the stall at the end of their travel. Please make me feel dumb and tell me what simple thing I missed.

      ; Configuration file for Duet 3 MB 6HC (firmware version 3.3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun Sep 10 2023 16:30:42 GMT-0500 (Central Daylight Time)
      
      ; General preferences
      G90                                                ; send absolute coordinates...
      M83                                                ; ...but relative extruder moves
      M550 P"My Printer"                                 ; set printer name
      M669 K1                                            ; select CoreXY mode
      
      ; Wait a moment for the CAN expansion boards to start
      G4 S2
      
      ; Network
      ;M551 P"hnsxjhew"                                  ; set password
      M552 I1 S1                                   	   ; enable network and acquire dynamic address via DHCP
      M586 P0 S1                                         ; enable HTTP
      M586 P1 S0                                         ; disable FTP
      M586 P2 S0                                         ; disable Telnet
      
      ; Drives
      M569 P0.0 S0                           			   ; physical drive 0.0 goes backwards
      M569 P0.1 S0                           			   ; physical drive 0.1 goes backwards
      M569 P0.2 S1                           			   ; physical drive 0.2 goes forwards
      M569 P0.3 S1                           			   ; physical drive 1.0 goes forwards
      M569 P0.4 S1                           			   ; physical drive 1.1 goes forwards
      M569 P0.5 S1                           			   ; physical drive 1.2 goes forwards
      M569 P121.0 S1                         			   ; physical drive 121.0 goes forwards
      M584 X0.0 Y0.1 Z0.2:0.3:0.4:0.5 E121.0 			   ; set drive mapping
      M350 X16 Y16 Z16 E16 I1                            ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z400.00 E420.00                  ; set steps per mm
      M566 X900.00 Y900.00 Z60.00 E120.00                ; set maximum instantaneous speed changes (mm/min)
      M203 X6000.00 Y6000.00 Z180.00 E1200.00            ; set maximum speeds (mm/min)
      M201 X500.00 Y500.00 Z20.00 E250.00                ; set accelerations (mm/s^2)
      M906 X800 Y800 Z800 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 X230 Y210 Z200 S0                             ; set axis maxima
      
      ; Endstops
      M574 X1 S3                                         ; configure sensorless endstop for low end on X
      M574 Y1 S3                                         ; configure sensorless endstop for low end on Y
      M574 Z2 S4                                         ; configure sensorless endstop for low end on Z
      M915 X Y R0 F0
      
      ; Z-Probe
      M950 S0 C"121.io0.out"                             ; create servo pin 0 for BLTouch
      M558 P9 C"121.io0.in" H5 F120 T6000                ; set Z probe type to bltouch and the dive height + speeds
      G31 P500 X0 Y0 Z2.5                                ; set Z probe trigger value, offset and trigger height
      M557 X15:215 Y15:195 S20                           ; define mesh grid
      
      ; Heaters
      M308 S0 P"temp0" Y"thermistor" T100000 B4138       ; 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 R0.668 K0.501:0.000 D4.24 E1.35 S1.00 B0   ; disable 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"thermistor" T100000 B4138   ; 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
      
      ; Fans
      M950 F0 C"121.out1" Q500                           ; create fan 0 on pin 121.out1 and set its frequency
      M106 P0 S0 H-1                                     ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"121.out2" Q500                           ; create fan 1 on pin 121.out2 and set its frequency
      M106 P1 S1 H-1                                     ; set fan 1 value. Thermostatic control is turned off
      
      ; 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
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
      
      
      
      ; homez.g
      ; called to home the Z axis
      ;
      M400 			  ; Wait for current moves to finish
      M913 Z70	 	  ; drop motor current to 70%
      M400
      G91               ; relative positioning
      ;G1 H2 Z5 F10000   ; lift Z relative to current position
      G1 H1 Z600 F7000  ; move Z down until the endstop is triggered
      G92 Z0            ; set Z position to axis minimum (you may want to adjust this)
      M400
      M913 Z100	 	  ; return current to 100%
      M400
      ; Uncomment the following lines to lift Z after probing
      ;G91              ; relative positioning
      ;G1 Z5 F100       ; lift Z relative to current position
      ;G90              ; absolute positioning
      
      
      
      dc42undefined gloomyandyundefined 2 Replies Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @graybilldustin
        last edited by

        @graybilldustin I don't see a S parameter on your M915 command to set the stall sensitivity.

        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

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

          @graybilldustin You also don't seem to be actually setting stall detection on Z only on X and Y? Also you seem to be setting the Z position to zero with G92 Z0 but surely that will be at your max Z height if the motors have just stalled? Also If you are going to use a mesh, I'd strongly suggest that you use the probe to set your Z=0 position and ideally use one of the same points that you probe during creation of the mesh.

          Finally are you using belts or threaded rods for your Z axis? Using stall detection on threaded rods can be very tricky to get working.

          1 Reply Last reply Reply Quote 0
          • graybilldustinundefined
            graybilldustin
            last edited by

            I changed it to M915 X Y Z S-64 R0 F0 and it still does not seem to work.

            The G92 Z0 is left over from the default file I just haven't changed it yet, I was more concerned with getting the stall detection to work first.

            I am using rods, this is the first I have heard anyone mention it being harder to do than with belts. My prusa minis use sensorless homing on the Z axis with rods. What in particular makes it harder to do?

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

              @graybilldustin said in Quad Z Sensorless Homing + BLTouch:

              I am using rods, this is the first I have heard anyone mention it being harder to do than with belts. My prusa minis use sensorless homing on the Z axis with rods. What in particular makes it harder to do?

              See for instance:
              https://forum.duet3d.com/post/300230
              https://forum.duet3d.com/topic/17314/sensorless-homing-stall-detection-lead-screw
              https://www.klipper3d.org/TMC_Drivers.html#limitations

              I'm sure if you spend a little time searching you will find other similar comments.

              I'm still not sure why you want to home the bed this way, if you have a probe why not use that?

              graybilldustinundefined 1 Reply Last reply Reply Quote 0
              • graybilldustinundefined
                graybilldustin @gloomyandy
                last edited by graybilldustin

                @gloomyandy said in Quad Z Sensorless Homing + BLTouch:

                sure if you spend a little time searching you will find other similar comments.
                I'm still not sure why you want to home the bed this way, if you have a probe why not use that

                When I shut the machine off and some of the motors fall down and the entire gantry is slightly crooked, then what do I do?

                In all of those other posts people mention mechanical advantage which doesn't really make sense. A stall is a stall. When it hits the mechanical end stop the motor can not turn any further regardless if it is driven by a belt or a screw. I could see mid print stall detection on a screw not working well but sensorless homing should not matter in this way. I am convinced that I have some settings wrong. I have previously only used Marlin and Rep Rap is a whole different beast that i'm still struggling to understand.

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

                  @graybilldustin https://docs.duet3d.com/User_manual/Connecting_hardware/Z_probe_auto_levelling

                  graybilldustinundefined 1 Reply Last reply Reply Quote 0
                  • graybilldustinundefined
                    graybilldustin @gloomyandy
                    last edited by

                    @gloomyandy

                    That's not the same thing. When the gantry is crooked the nozzle is crooked to the bed and you will end up with artifacts on flat top layer surfaces because the nozzle is not flat.

                    A Former User? gloomyandyundefined 2 Replies Last reply Reply Quote 0
                    • A Former User?
                      A Former User @graybilldustin
                      last edited by

                      This post is deleted!
                      1 Reply Last reply Reply Quote 0
                      • gloomyandyundefined
                        gloomyandy @graybilldustin
                        last edited by

                        @graybilldustin That is exactly what the auto levelling is designed to handle, what makes you think it is not suitable?

                        1 Reply Last reply Reply Quote 0
                        • graybilldustinundefined
                          graybilldustin
                          last edited by

                          Common problem on a lot of forums but I hoped this one was going to be different. I came here to ask for help to do something, not to ask for recommendations on what to do. Everyone has different ways of doing things and reasons for that. I have decided what I want to do and just needed help figuring out how to do it. I was not asking for something crazy that isn't supported so there wasn't any reason to tell me to do something else. And lastly my BL Touch doesn't get close enough to my screws for this to work. In one corner the probe is probably at least 4" away from the screw

                          I was able to figure it out on my own and it works absolutely perfectly. For those that think a lead screw doesn't work with sensorless homing that is 100% inaccurate as long as you have a hard stop that will completely stall the motor and not just flex when the end is reached. As long as your axis hits a hard stop and the motor completely stalls sensorless homing works just fine.

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

                            @graybilldustin I'm glad you have it working, but I'd still recommend that you use the probe to set the Z=0 point if you plan to use a bed mesh. Doing it that way will avoid a lot of potential problems with the mesh having an offset from the bed especially if you make sure the probe point you choose aligns with one of the points in the bed mesh.

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

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