sensorless homing/ stall detection lead screw



  • Hey Guys,

    I try to get sensorless homing to work on an additional axis to spare a endstop + wiring (wiring is the tricky part), but I can't get it to work reliably. The problem is, that on the one hand the mechanism is kind of rough (so I can't limit the current to low and can't set the sensitivity to low) but then on the other hand I can't set the current and sensitivity to high because than the stalling is not recognized.
    It is a lead screw Tr10x2 with a bronze nut.
    VIN is 24V.
    Motor Wantai Nema 17 Schrittmotor 48mm 0.9° 42BYGHM809
    complete data:
    phase resistance: 1.25 Ohm
    voltage: 3.06V DC
    current: 1,7A
    torque: ca. 40 g-cm
    (no info about inductance)

    As far as I understood in here: https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing

    • the higher the homing speed the better detection
    • the lower the current of the motor (set temporarily) the better detection
    • the lower the sensitivity the better detection
    • the higher the H parameter the better detection
    • the lower acceleration and jerk the better detection

    I played with all parameters but it I can't get it to work properly

    file for testing the homing (not the actual homeu.g)

    M574 U1 S3 																			    ; homing with stall detection
    M400                  			; make sure everything has stopped before we make changes
    M913 U66        			; drop motor currents to 50% ;46
    M915 U S3 H200 R0 F0     		; set U to sensitivity 2, do nothing when stall, unfiltered
    G91                   			; use relative positioning
    G4 P1000
    M98 P"Alarmsound.g"
    G1 H1 U-90 F600			        
    M400                		 	; make sure everything has stopped before we reset the motor currents
    G90                  		 	; back to absolute positioning
    M913 U100     				; motor currents back to 100%
    G4 P500
    G1 U+10 F4000 			      
    

    Part of the config

    
    M350 U16 I1                                                         	   ; configure microstepping with interpolation
    M92 U3200.00          				  				   ; set steps per mm
    M566 U5  					  				   ; set maximum instantaneous speed changes (mm/min) (U and V former 600 now 50 and 300)
    M203 U1000 					   						   ; set maximum speeds (mm/min) (u former 700)
    M201 U50 					   					   ; set accelerations (mm/s^2) (former 1000 and 1000 now 50 and 500)
    M906 U1000 V2000 I30			                                  		   ; set motor currents (mA) and motor idle factor in per cent				   							   ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                                                                    ; Set idle timeout
    
    

    And one more strange thing is happening. When the homing is not successfull the drive is moving all the distance that it moved for homing in the other direction (so to sat to the start position for homing ... is that normal?)

    Any help is appreciated


  • Moderator

    @taconite said in sensorless homing/ stall detection lead screw:

    When the homing is not successfull the drive is moving all the distance that it moved for homing in the other direction (so to sat to the start position for homing ... is that normal?)

    Are you sure it's not just going to absolute position 10 from this?

    G90                  		 	; back to absolute positioning
    M913 U100     				; motor currents back to 100%
    G4 P500
    G1 U+10 F4000 	
    

    Stall detection is a tricky proposition at the best of times. A lead screw driven axis with such a low lead may be problematic.

    Have you done the calculation to determine your minimum speed?

    https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing#Section_Minimum_recommended_speed_for_stall_detection



  • @Phaedrux said in sensorless homing/ stall detection lead screw:

    going

    Thank you for your reply!

    That is a good question, but it makes no sense because it moves a lot more when the homing is not working. When the homing is correctly set it is really just moving the 10mm. When I command the axis manually up (G91 and G1 G2 U60) it is moving down (when I execute the macro) and when homing is not working it is moving up all the way again.

    Yeah it seems like it 😄

    Yeah I've done the calculations:
    aea61b2b-358d-43f9-8b40-9ffb1352a436-grafik.png

    And what is your suggestion - increasing the value or decreasing? The value seems kind of low (when 400 is the recommended for 0,9° stepper motors)



  • and is there a M or G command to "forget" that an axis is homed?


  • Moderator

    You can turn the motor off with M84 which will flag it as unhommed.

    https://duet3d.dozuki.com/Wiki/Gcode#Section_M84_Stop_idle_hold

    M84 X Y



  • @taconite i think this situation came up before. A possible cause was that mechanical advantage afforded by a low lead screw meant the motor will see very low mechanical resistance. Approximately 10% of a belt drive in your case. Phaedrux alluded to this above


Log in to reply