How to account for thermistor resistance offset
-
Hey there,
First a bit of context (skip this if you like):
On my printer I have a keenovo bed heater with a 100k B:3950 thermistor that heats a 8mm aluminium plate. I now want to add another thermistor that actually sits in a bore of the bedplate to get some temp readings that are more accurate for the actual surface temp. I want to use the same type of thermistor as the one in the heater so that I can compare them better and they behave more similarly.
(End of context)On my printer I don’t connect the thermistors directly to the board but have the original thermistor wires cut short and terminated into a molex micro fit 3.0 plug as many of us do for easier replacement and cable management. The "signal" then runs trough a a shielded cable, a terminal, another shielded cable and then to the board. Thus the resistance is increased in comparison to if I just plugged the thermistor wires into the duet due to everything in between the thermistor and the board. I imagine this is approximately a constant (positive) resistance offset, that will (for ntc thermistors) result in a lower temperature reading. But since this is a constant offset and thermistors usually don’t have a linear correlation between resistance and temperature where you could just apply the offset to the T value of M308, the inacuraccy or temperature offset will be greater to either the high or the low end of the temperature range depending on the thermistor. Actually the constant resistance offset would have to be subtracted from the overall resistance the duet is seeing on the temp connector before calculating the temperature from that resistance...
Now would the semi-automatic adc calibration procedure mentioned here do just that and improve the accuracy if you in step 4. jumper the connector closest to the thermistor instead of jumpering the connector on the duet board itself, or would that mess things up even more.
I also posted this question under the linked documentation page (a bit more generalized tho) since I think this would be a helpful addition for everyone looking into this problem.
-
Maybe someone can explain to me what the adc calibration actually does. I know it has something to do with offset and gain errors, but I am not sure whether this is the offset I want to account for.
-
@schild0r, the ADC calibration accounts for offset and gain errors in the ADC itself. It is not intended to compensate for additional resistance. However, the resistance of any reasonable wiring scheme should be very much less than the resistance of a 100K thermistor even at typical hot end temperatures; so you don't need to worry about the wiring introducing a significant offset.
Wiring resistance does introduce errors when using a 2-wire connection to a PT100 sensor. That's why we recommend a 4-wire connection if the wires are long.
-
@dc42 thanks for the answer. So doing the adc calibration should get my thermistors to report better values? Because right now both of them are reading about 15°C very consistently at 20°C room temp.
Would it even make a difference then if I jumper the temp input on the board for the low end adc calibration or the terminals or the molex plug the temp input is connected to?
-
@schild0r, it depends on which Duet you have; but running ADC calibration will likely make them more accurate, especially at low temperatures.
-
@dc42 thanks I will try that, I completely forgot to mention, I am running the Duet 3.
-
@schild0r, on Duet 3 MB6HC the un-calibrated errors can be quite large. Typically, TEMP0, TEMP1 and TEMP2 have significant error at low temperatures only, and different TEMP3 has significant error at high temperatures only.