Stall detection and sensorless homing
-
I did give this a try on my corexy yesterday I used your x homing gcode Frédéric, and modified it for y as well. I had to turn my sensitivity up to 7 for x and 8 for y but it did work. Not very reliably sometimes I got false triggers, if I went as high as 13 on sensitivity it crashed the end of the travel pretty hard and didn't trigger.
So cool idea but I'm sticking with endstops for now.
-
I wasn't expecting CoreXY users to use sensorless homing.
Thanks for doing this David it is quite a nice feature to play with, but if a corexy is a 2-motors-linked-kinematic and a delta is 3-motors-linked, can this be used for deltas? Or is it actually easier as there is one endstop per tower and one motor it controls?
I wouldn't use it on the kossel Xl as my optical endstops are very accurate probably better than the 4 steps resolution. But I'd like to try making a delta from a tube which was discussed on reprap, and an endstop-less scheme appeals.
-
Yes deltas are easier because each tower has one motor and one endstop. I had it working well on my delta, although I wouldn't rely on it without doing an auto calibration cycle after homing.
For sensorless homing on a delta, I suggest putting the motors at the top and making the physical endstop adjustable with a range of at least 4 full steps. That way, the belt distance between the motor pulley and the carriage when homed will be small, so thermal expansion shouldn't change the homed motor position by as much as a full step. If it turns out that the homing position is on the cusp between full steps, you can adjust the physical endstop position to avoid that.
Just about any type of endstop switch should have resolution way better than 1 full step.
-
This might be a particularly helpful feature for CoreXY printers that plan to implement parked effectors!
-
Hmm, could we use stall detection as a z probe? Or would it be too aggressive?
-
Hmm, could we use stall detection as a z probe? Or would it be too aggressive?
I think David answered this elsewhere. Z axes are typically screw driven so even for homing against a hard stop, it's unlikely that the sensitivity could be adjusted to accurately discriminate. So with probing I'd say thee is zero chance of getting the necessary precision and repeatability.
-
Fair enough. Would have been a sweet way to level a bed So, if we already have x/y endstops, is there any advantage to sensor-less homing?
-
Fair enough. Would have been a sweet way to level a bed So, if we already have x/y endstops, is there any advantage to sensor-less homing?
I personally wouldn't want to rely on it. Even if I was starting a build from scratch, I'd still fit switches. Simple micro switches are cheap and reliable.
-
In view of the limitations (in particular, limited accuracy) of sensorless homing, IMO it is a reasonable option for minimum-cost printers, and little more than a gimmick on anything else. The current Duets are over-specified and too expensive to be used in low cost printers.
-
Hey i have a question regarding the stall detection, how can i tell the printer to rehome after a stall was detected?
-
See https://www.duet3d.com/wiki/Stall_detection_and_sensorless_homing
Use M915 with R param = 3.
-
Thank you
-
I view sensorless homing for X/Y as a "nice" feature where I can eliminate some wiring on my coreXY, particularly since the X switch was on the carriage. Because it was there, it's also one less thing to design my extruder mount around.
-
Any update on the CoreXY homming? Does it work in 1.20 stable?
-
Any update on the CoreXY homming? Does it work in 1.20 stable?
I am using sensorless homing for quite a while now on my corexy (and it works well).
The only facility you loose is the ability to resume prints after a power failure but that is not a big deal for me as I print small parts most of the time -
Any update on the CoreXY homming? Does it work in 1.20 stable?
I am using sensorless homing for quite a while now on my corexy (and it works well).
The only facility you loose is the ability to resume prints after a power failure but that is not a big deal for me as I print small parts most of the timeCan you post your g-code for sensorless homing? I would be grateful
-
Can you post your g-code for sensorless homing? I would be grateful
-
Hi Dragonn,
this is the macro I use:
M400 ; make sure everything has stopped before we make changes M913 X65 Y65 ; XY motors to 65% current M915 H400 X Y S0 R0 F0 ; set X and Y to sensitivity 0, do nothing when stall, unfiltered M574 X1 Y1 S3 ; set endstops to use motor stall G91 ; use relative positioning G1 Z10 F1200 ; lift Z G1 S1 X-325 F2400 ; move right/back 325mm, stopping at the endstop G4 P500 ; wait 500msec G1 X5 ; move away from home G4 P500 ; wait 500msec M400 ; make sure everything has stopped before we make changes ; X is homed at this point, now home the other axis G1 S1 Y-325 F2400 ; move beyond axis minimum G4 P500 ; wait 500msec G1 Y5 ; move away from home G1 Z-10 F1200 ; lower Z M400 ; make sure everything has stopped M913 X100 Y100 ; XY motors to 100% current G90 ; back to absolute positioning M574 X1 Y1 S1 ; define active low microswitches
the macro is then called with M98 from the homing files.
Motor current and stall sensitivity are directly related, so you will need to tweak that… -
M917 is not the right command to reduce the current during homing, it should be M913.
-
Thanks for the sharp eyes David (fixed above post)
This means I was homing without current reduction (which works anyway ;))