Initial Testing

A project log for Delta Printer - Capacitive Nozzle Probe

Test accuracy and consistency improvements of a capacitive bed probe triggered by contact with nozzle.

mulcmumulcmu 02/03/2024 at 16:320 Comments

An Arduino ESP32 was setup using touchRead() in the main loop to toggle the onboard led and stream the read value out over Serial.  A single 15mm x 15mm x 1mm pad was tested with dial indicator to get a feel for the trigger range.  The led was toggled consistently at same location, the range of motion was less than 0.001-inch, maybe 3 to 5 tenths, so about 0.01 mm.  Looking good so far...

Code was modified to use an ESP32 output to trigger the probe input on the printer.  Testing started with the clip mount with an ungrounded 40mm x 40mm x .5mm pad on the bottom of the 3mm thick adhesive foam.  The touchRead() values were plotted with serial plotter, 5ms delay was added to slow down the stream of data.  Manually controlling the z-height, the probe would drop 2 to 3 units with a quick transition from values above 50 to values less than 20.  Cycling z-offset ±0.0005 triggers output on and off.  This was very consistent and repeatable.

Testing was started with Klipper PROBE_ACCURACY command.  The range was way higher than expected 0.1 mm or more.  Testing to get this to improve was started.  The delay in the loop was removed, different trigger points were tested, the output was latched to stay on after initial trigger for 250 ms, different filtering was tried, grounding the bottom pad was tested, different springs on the probe holder were tried, rigidly attaching the sensors to the bed, eliminating the 3mm foam section, changing probe speeds and retract distances, ground connection to the nozzle, removing silicone sock, cleaning nozzle, unplugging heatsink cooling fan.  This improved things, 10 probes would typically trigger over a range of 0.02 to 0.04.  Consistent 0.00 to 0.01 mm is the goal.

Some testing with the stock probe micro switch and another smd microswitch soldered to perfboard and actuated by nozzle seemed to perform a bit better,  Pretty consistent sometimes but sometimes range was in 0.02 to 0.04 as well.

I cleared out the old delta calibration and started from scratch with DELTA_CALIBRATE using the clip probe to see how things changed.  When probing near the C tower the range increased drastically when the wires bumped into the tower.  Rerouted the wires to eliminate the contact and keep them as fixed as possible.

Testing still in progress, things to look into:  trace on the trigger voltage (is it getting pulled down quickly / consistently), recheck position bias, (is this digital paper making it better or gone), test probe position bias with the smd switch (less parts and code if this  would work), put Klipper on another delta and test (maybe something odd mechanically going on).