On the rebuild of my delta printer, I have been trying to come up with an accurate, reliable, and practical way of doing bed leveling. The latest attempt has largely been a failure but has at least been accurate and perhaps may be of interest. I am looking for new ideas for a piezo touch sensor and would be interested in any thoughts.
My investigations of underbed sensors have convinced me that all underbed sensors are inherently problematic - no matter what type of sensor is used. A method that has proven acceptable may give significant errors with relatively small changes to the bed weight, geometry, or mounting. Even surface contamination of the nozzle or bed surface can result in a hard contact between the nozzle and the bed.
One way of getting around the problems with underbed sensing is to probe only directly above a single underbed sensor which will give the nozzles Z position at contact. In the case of piezoelectric sensors, and perhaps others such as strain gauge sensors, it is also possible to determine if there is plastic or other contamination on the printer nozzle.
Once the Z contact position has been found there is a great deal of latitude in selecting a sensor to perform a mesh calibration so that errors of level or flatness may be corrected or compensated for. Touch sensors such as the BLTouch, inductive, capacitive, and optical sensors could all be used.
I chose to experiment with a touch sensor using a piezoelectric element, mainly because of the extreme sensitivity and usable resolution of the method, but also because I have a stable and reliable interface circuit for the piezo element.
The earliest piezoelectric touch sensor was intended to explore the extent of the errors in a triple underbed sensor and the results were quite disturbing: The difference between the piezoelectric touch sensor and the triple underbed piezo sensor, while mostly better than 10 microns, were as much as 50 microns different in some areas, and could be much worse in other printers.
A second piezoelectric touch sensor was fitted to my dual-headed printer which has proven sensitive, accurate, repeatable, and reliable. As it was possible to retract both print heads at once, the touch sensor did not need a mechanism to advance the probe. For most 3D printers though, there needs to be some way of extending the probe.
For the third sensor, I tried using a shape memory alloy wire to move a probe into position. The shape memory alloy, in this case, a 0.1mm diameter Nitinol wire, contracts by about 4% of its length when its temperature is raised above 90°C. This touch sensor was not a great success as it was too heavy, despite being constructed from thin metals. It was also too complex and the movement of the probe was jerky and slow. Ultimately it failed as the repeatability was poor.
A fourth sensor using mechanical deployment was designed for fitting to a delta printer. The probe itself is mounted on a lever with a fulcrum consisting of a knife edge. When stowed the lever is held in position by a magnet and when deployed it is held against a pressure block on the piezo element. The repeatability of this sensor is exceptional but only after it has been allowed to settle by performing a number of dummy probe operations. Other problems are that it is again too heavy and that the small piezo element limits the lower end of the system frequency response.
Possible future ways of building a touch sensor are to use a very light stepper actuator as shown below with a stepper module for scale. The overall size of this is quite tiny, about 18mm at its greatest length and less than 3 grams in weight. While I have yet to characterize these to find out if they are suitable, they are quite inexpensive at £3.50 from eBay.
Another possibility is to make a piezo version of a Klicky probe that can be picked up by the effector to take the bed mesh measurements. This again is in the very early stages of spitballing.
Mike