Following on from rayhicks' suggestion at [
forums.reprap.org], I've been thinking further about using vibration to detect when the nozzle is in contact with the bed. Using the fan vibration may work, but will not be very reproducible because it depends on the model of the fan and how out-of-balance it is. So I'm thinking of using the y-motor to vibrate the bed from side to side a little, and using a piezo attached to the hot end heatsink block or the back of the heatsink to detect that vibration. The Ormerod would send a signal to the sensor board (mounted on the hot end) at the same frequency as the y-axis vibration, through the pin that is used for IR sensor modulation when a modulated IR sensor is being used. The mcu on the sensor board would use this signal to do phase sensitive detection of the output from the piezo, so as to be insensitive to vibrations at other frequencies (e.g. from the fan).
At the g-code level, the user would execute M558 P3 to indicate that a vibration sensor is being used (M558 P2 is reserved for a modulated IR sensor). It would be necessary to use a microswitch for x-homing.
Any thoughts/comments/suggestions?
Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod
Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].