Auto Bed Leveling using piezo electric discs for very high sensitivity.
Update v 0.2!
Now using a single piezo disc glued (temporarily at least) to the x-carriage (see image). With the piezo element glued between the two bearings gliding on the x-axis shafts, and tiny amount of twisting (like the hotend touching the bed) will ever so slightly bend the plastic in the x-carriage. Since the piezo is glued on top, this will bend as well creating a relatively large signal. Thus even a minuscule force acting upon the hot-end can be detected using some electronics. This solves the problem of the previous setup with differing sensitivity of the three piezo discs (due to the discs them self and/or the mechanical setup) in v 0.1. Auto leveling is now even better, giving a perfect first layer every time (as long as the nozzle has been wiped clean of plastic, that is).
Still to do: Electronics is rather sensitive to EMI, so I'm waiting for a metal case for it. Right now, it can trigger when probing too close to the x-axis stepper if it's moving, so a quick fix right now has been to add a pause (in firmware) after moving to the right x-y position before starting the z movement.
Old v 0.1 info:
Mounted between the bed springs and the z-stage, any force down on the bed can be registered and used as a probe signal. Hence one can measure when the hot-end touches the bed surface. No modification to the hot-end or carriage is therefore needed, and the probe is insensitive to temperature.
This is still a work in progress, so although it is working for me in it's current form, it needs constant tuning as the circuit is not yet perfected, and the mechanical mounts have some known issues. A new circuit and new mounts have been designed but not yet tested.
So far, I've tried to only use parts available from sparkfun. I'm guessing a total cost for all parts of less than $20 USD.
Video of version 0.1 doing bed height mapping : https://www.youtube.com/watch?v=Zn9X-WGBuvQ
Discussion at soliforum:
Print the v0.3 back, and two v0.3 fronts, one of the mirrored. Drill the smaller hole out to 3 mm, and the larger one to 4.5mm. Glue the piezo disc underneath using silicone glue. Use an m4 screw to center the lever on the holes in the bed-holder, and drill through the 3mm into the aluminium, so that you can use some m3 screws to fasten the levers to the bed-holder. The rest of the mounting should be self explanatory.
Since the sensors are very sensitive, the acceleration of the z-axis and the intertia of the bed can be enough to trigger the probe. It can therefore be helpful to disable z-jerk and decrease z acceleration. With repetier firmware, there's a seperate travel acceleration setting, so this is the script I use:
G0 Z10; goto 10mm z height to prevent crashing in bed
M202 Z30; set z acceleration
M207 Z0; disable z-jerk
G32 S0; auto level
M207 Z5; restore z-jerk
M202 Z300; restore z acceleration