The ideal position for an ABL probe is obviously at the nozzle. But probing with the nozzle has its own problems: when hot, the nozzle could damage the bed and when cold, there might be plastic offsetting the position triggering the probe ...
So, the next best thing would be a probe as close as possible to the nozzle, but that's easier said than done ... or is it?
Presenting the Near Nozzle Probe. The idea is simple: use a metal "needle" to get as close as possible to the probe, but move out of the way during printing (and away from the heat). The "detection-unit" is an optical end-stop and is moved sufficiently up - away from the rotation axis - to avoid too much loss of accuracy with the long distance from the needle point to the rotation axis. That axis uses 2 MR115 bearings, but more on that below.
To move the needle up and down a 3.7g SG37 servo is used and the needle used to be a paper-clip, now bent into the position wanted. It is fixated into the arm by heating it up using a soldering iron - ideally including a 90° angle touching the arm side to prevent it from rotating (see youtube movie). And everything is bolted shut using M3 20mm and one M3 30mm bolts (as those is what I had around).
Now, despite the bearings, gravity was not enough to "deploy" the probe reliably, which is why the servo doesn't just have a deploy and stow position, but also a measure position, i.e. the deploy angle pushes the needle down, then the servo moves back so that the needle has room to be pushed back up when pressing against the bed.
But as far as I could tell, Marlin only supported 2 states for a servo probe, so I had to add some support for the extra "measuring angle" and because I want to have the needle retracted while moving (to avoid hitting something), also added a Z_SERVO_INTERMEDIATE_STOW setting for that. The changes I had to made can be found on github.
With everything put together, we get a pretty decent standard deviation of 0.002693 mm without moving X and Y as seen in this Youtube movie and the M48 S1 P20 V4 test results in a decent:
Mean: 0.003375 Min: -0.005 Max: 0.013 Range: 0.018 Standard Deviation: 0.005550 This was with the needle bent so it ends behind the nozzle, giving me an offset of:
#define NOZZLE_TO_PROBE_OFFSET { -4, +12, -2.8 }
So, using Pythagoras, this means we're probing at 12.6mm from the nozzle, not too bad, right?
In the meanwhile I have also Klipperized this Ender 3 Pro and tweaked Klipper a bit to optimize the probing further. A video of the result can be found here.
So, is this probe better than others? Time will tell, but it's definitely good to have options and to allow everyone to build on this and try to improve it, I have included the Fusion 3D design. Feel free to analyze, modify, extend and otherwise use it, but when you do publish something based on it, please just gimme a bit of credit ;-)
Printer Brand:
Creality
Printer:
Ender 3 Pro
Rafts:
No
Supports:
Yes
Resolution:
200
Infill:
20
Filament: Any PLA Black
Notes:
I've included the PrusaSlicer 3MF file with the paint-on-support for the main body.
Post-Printing =============
Putting it all together
Category: 3D Printer Accessories
The author marked this model as their own original creation. Imported from Thingiverse.