sensorless homing/ stall detection lead screw
taconite last edited by taconite
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
phase resistance: 1.25 Ohm
voltage: 3.06V DC
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
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?
taconite last edited by
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:
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)
taconite last edited by
and is there a M or G command to "forget" that an axis is homed?
You can turn the motor off with M84 which will flag it as unhommed.
M84 X Y
3DPMicro last edited by 3DPMicro
@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