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/24/2024 at 15:320 Comments

Went through several iterations of testing the accuracy with minor tweaks to the Arduino ESP32 code.  Activation by ISR, different types and levels of filtering, and changes to the touchRead() default configuration.  The default (0x1000) measurement clock (ULP) cycles should result in about 50 measurements per 0.025 mm interval while lowering.  This was decreased by factor of 8 (to 0x200) for 400 measurements per 0.025 mm interval.  The quicker measurements reduce the magnitude of the touchRead() return value but was high enough to still distinguish between triggered and not triggered.  

During the first 2 or 3 probe accuracy cycles with 100 sample points the trigger height will slowly drift downward by 0.01 to 0.02 mm for each 100 cycle iteration.  This was also observed with a micro switch fixed to the bed and actuated by the nozzle.  At this point it seems like the capacitive sensor is triggering consistent when compared to a physical microswitch.  Not sure yet if this is a klipper quirk, mechanical or electrical issue.  Haven't run it enough times to see if it ever stops drifting lower.  After home command it does revert to the original height. 

Anyway, starting to rework the clip design to use copper foil tape and mylar sheet for the probe.  This will get probe offset (thickness) down to 0.20 mm range.  There are still a few things to improve the code like doing measurement and filtering on separate core to improve sampling frequency with the trigger logic and serial output on the other core and tweaking the high and low charge voltages.