Klipper3d / klipper

Klipper is a 3d-printer firmware
GNU General Public License v3.0
9.46k stars 5.31k forks source link

Sensorless probing #697

Closed Avalonnw closed 6 years ago

Avalonnw commented 6 years ago

Sorta question/suggestion: For those who use TMC2130 with sensorless homing, is it possible to use that feature for probing also? Like, emulate SmartEffector really? Possibly setup sensitivity super high temporarily for probing and move Z axis down till nozzle hits the bed (in case of deltas maybe monitor all 3 drivers for that?). Then clear the error state and move up, and to the next point...

CHILLYSMOKES commented 6 years ago

+1 *1,000,000 Although, there is usually some smudgy residue left on the nozzle tip if you don't have an auto-nozzle-cleaner/wiper thingy. I would love this, then I could get rid of this BLTouch my extruder is lugging around for hours after using it for the first 30 seconds. Good idea!!

jakep82 commented 6 years ago

The short answer is no.

Avalonnw commented 6 years ago

The short answer is no.

And the long answer?

jakep82 commented 6 years ago

The drivers require a minimum SGT value for the motor to move without instantly triggering. Even at that minimum value, a lead screw driven Z axis will flex the bed before it triggers, potentially causing damage. It's also not repeatable. My understanding is the sensorless homing is only accurate within a couple steps.

Avalonnw commented 6 years ago

Go slow and it will be alright. Plus, how much travel to you get with 2 steps, 5mm?

dragonnn commented 6 years ago

It is possible but you need a super stiff z axis with runs perfectly smooth and you hotend mount need to be super stiff too. That guy did it https://forum.duet3d.com/topic/4772/motor-stall-detection-as-z-probe/5

theopensourcerer commented 6 years ago

Personally I think this is a very risky approach - especially if you print directly onto glass which is HARD.

If you don't like the BLTouch approach, take a look at Precision Piezo [1]. I'm using a piezo disc on my tool head and it is so sensitive that when probing I can't walk around in the room as it triggers! Accuracy is to about 10microns. They are very lightweight and can be mounted in a number of different ways.

[1] https://www.precisionpiezo.co.uk/

FHeilmann commented 6 years ago

Sensorless homing only works at certain minimum speeds and requires a well tuned SGT value, which drifts with temperature changes in the driver. Further, sensorless homing is only accurate within 1 full step, which, depending on your steps/mm can be somewhat significant. It's certainly possible, but the repeatability issues and mechanical wear make it not worthwhile compared to existing homing solutions, at least in my book.

CHILLYSMOKES commented 6 years ago

@theopensourcerer BLTouch works flawlessly. But if there is a feature that I can use that reduces wiring, volume, inertia then I want it.

@dragonn YES! That guy did it with gcodes. So we only need a set of gcodes or macros that change the SG values and Z-stepper current values directly before and after each probing.

jakep82 commented 6 years ago

If you read that entire thread you'll note that a few people got it working, but not very reliably. It requires a lot of fine tuning, it will trigger at different heights if the motor is warm vs cold, and I also personally notice a difference in the sensitivity of my TMC2130s due to noise and/or voltage drop depending on what temperature I'm running my bed. It also doesn't work as a probe, only as an endstop because the bed will deflect more in some places than others. I'll personally stick to my $0.50 mechanical endstop switch because it's accurate enough, and I'm less likely to destroy my bed and/or hotend.