Temperature correction for NPN Capacitive probes.
-
It is documented that capacitive probes give different readings at different temperatures. The sensing distance is larger at lower temperatures. Scenario: You calibrate the trigger height value for the probe at room temperature. Then you preheat your printer bed for an ABS print with the sensor being close to the bed as it heats up. The sensor get's warm as well. Now you run a G29 command, and then send a print. In this situation your nozzle will be colliding with the bed for the entire first and second layers thus requiring the use of baby stepping, but probably not before you have damaged your BuildTac or PEI print surface. This is a big problem.
I have a $3 inductive probe purchased on Ebay. I have drilled a hole in it and installed a Thermistor inside this hole. These numbers are likely to vary based on the specific probe the user has installed, but to get some ballpark starting values here is what I've come up with: At 24°C the inductive probe I'm using has a trigger height of .8mm. At 85°C it has a trigger height of .3mm
I propose the following solution:
- The creation of a "probetemp" firmware macro which will contain temperature/trigger height samples. Something like this:
Variable "Probe Temp Low" Probe_Temperature=22 Trigger Height=.8
Variable "Probe Temp medium" Probe_Temperature=60 Trigger Height=.5
Variable "Probe Temp medium" Probe_Temperature=85 Trigger Height=.3 - The back end of the firmware can then take these numbers and do the math with them to compensate trigger height based on probe temperature.
How difficult would this be to implement? I'm hopeful that this could be an easy addition. I'm happy to generate the math such as figuring out if it is a linear or parabolic relationship of temperature to trigger height. Is there anyone here that can help me get this functionality into the firmware?
- The creation of a "probetemp" firmware macro which will contain temperature/trigger height samples. Something like this:
-
The Prusa PINDA V2 inductive type z-probe has a built in thermistor and their firmware uses this to automatically compensates for the probe temperature drift. I believe there is a manual calibration also.
Even just being able to check the probe temperature before printing starts would allow me to "baby-step" from a lookup table to manually correct.
I also would like this type of functionality incorporated into the Duet firmware.
Is this on the firmware wish list?
-
Just to clarify some things. I'm doing a budget build with a Maestro. I definitely think that capacitive sensors are a bad solution, but when they cost $3 it's hard to dismiss them entirely. Compensating for the temperature/sensing-height drift with an algorithm is a patch. It's ugly, but it makes an inexpensive solution somewhat viable. No matter how perfectly calibrated/patched you get these sensors you will never overcome the fact that they don't measure the print surface directly. This means you can't change from having a glass bed on one print and then PEI/BuildTac on the next print. Not to mention problems caused by air-bubbles in your PEI/BuildTac application which increase the distance between the print surface and the metal sub-bed which is being read by the sensor. To me, the only appeal of inductive probes is the price tag. The Duet is so capable, I see no reason why this functionality for capacitive probes can't also be baked into the firmware even if it is sub-standard engineering.
-
This sounds like it may be doable with conditional gcode, which should be just around the corner.
-
Capacitive sensors are also affected by humidity.
-
Good to know. How large is the effect?