Improve / optimize PT100 temperatures
-
For my chocolate printers I am looking for a way to improve temperature readings even further, and also keep temperatures the same across all of them.
Setup is a duet 3 mini with PT100 daughterboard.
The extruder is made from two heating elements and heaters. One is a cartridge close to a heating cartridge the other one is a heating foil with sensor. Both are class A PT100’s.
There also is a thermistor in another heating foil for a preheater as the duet 3 mini can only handle one daughterboard and temperatures are not that important here.I also have two calibrated ebro thermometers which are within 0.2° of each other, which I use for reference.
If leaving all of them in one room I have various deviations (all of them within 1.5°).
If I heat all of them to the same temperature I also have some deviations within 2°.
I know this already is not to bad, but I'd like to improve it some more and don't mind spending a little time on it.With the thermistor I suppose I could use the L and H parameters in M308 but I did not find anything like it for the PT100’s.
I suppose (especially with the PT100’s as they are quite linear) the easiest way would be a „offset“ parameter within M308. The basic idea is an offset which is added/subtracted from the actual raw reading before it is used for anything else.This would make calibrating multiple printers to behave the same so much easier. (Probably not just for me)
Does something exist and I simply don’t know of it, or else could something like this be added to RRF?
-
@benecito moved to the firmware wishlist.
-
@benecito if your PT100 readings are that far out, then most likely you are using a 2-wire connection and you have too much resistance in the wiring. One of the plus points of using PT100 sensors is that used properly, they need no calibration unless you need better than 0.2C accuracy.
It's possible to use more than one daughter board on the Duet 3 Mini if you pick up CS signals for the second one from IOx_OUT pins.
-
@dc42 I indeed am using 2 wire sensors, but just because I also tried a 4 wire sensor. The difference was 0.3°C - which is still a fraction of the difference I actually have and matches the resistance in the wires quite perfectly.
For me it would be easier to wire in a 2 wire configuration and compensate for the 0.3°C. Over all I'd like to get the readings as precise as possible, but below 0.5° for sure!You think an option for calibration could be added in the near future?
@dc42 said in Improve / optimize PT100 temperatures:
It's possible to use more than one daughter board on the Duet 3 Mini if you pick up CS signals for the second one from IOx_OUT pins.
Good to know! How exactly do I wire it? Probably will not change it in the near future, but might do so with the next revision. Just grab a free IOx_OUT pin and wire it to spi2.cs1/2 while still keeping the second stacked on top?
-
@benecito you can use 2-wire sensors but switch to 4 wires close to the sensor. That's what I do.
The problem with trying to compensate for wiring resistance when using a 2-wire connection is that if there are connectors involved, then you should not assume that the wiring resistance is constant.
You can compensate for resistance error in the sensor itself using the M308 R parameter.
-
@dc42 said in Improve / optimize PT100 temperatures:
@benecito you can use 2-wire sensors but switch to 4 wires close to the sensor. That's what I do.
That’s also what I tried. Like I said it makes a difference of 0.3° for me
@dc42 said in Improve / optimize PT100 temperatures:
The problem with trying to compensate for wiring resistance when using a 2-wire connection is that if there are connectors involved, then you should not assume that the wiring resistance is constant.
How does this matter if I want to calibrate each setup?
@dc42 said in Improve / optimize PT100 temperatures:
You can compensate for resistance error in the sensor itself using the M308 R parameter.
Does not work for me - are you sure this works with a daughter board? A value of 9950 got me close but temperatures are all over the place afterwards.
-
@dc42 Any more clues on how to get a Temperature offset / calibration working for a PT100 daughter board with M308?
I didn’t find anything about the R component for PT100‘s in the documentation.Also any chance an option for an actual (and simple) temperature offset will be added in the future?
-
@benecito said in Improve / optimize PT100 temperatures:
with M308?
I didn’t find anything about the R component for PT100‘s in the documentation.https://duet3d.dozuki.com/Wiki/M308
See the documentation for M308
Additional parameters for MAX31865-based PT100 sensors Rnnn Series resistor value. Leave blank to use the default for your board. Fnn (where nn is 50 or 60) The local mains frequency. Readings will be timed to optimise rejection of interference at this frequency.
-
@phaedrux It's been a while and because of various reasons this has become more relevant again.
I tried again and it does not really work for me. So far I usedM308 S1 P"spi.cs1" Y"rtd-max31865" A"Nozzle"
While this gives me a reading of 35.1°
R400 gives me approximately the same R401 gives me 35.9° and R399 gives me 34.8°
So not really an option for fine tuning the temperatures.
Any other ideas?I would still love to see an option to make this easier (and also think it would make sense in a lot of cases).
For example an "O" parameter in M308 that simply accepts offsets in a way like "O0.6" or "O-1.1" for corrections of 0.6° and -1.1°. -
Does the PT100 daughter board even have a series resistor?
-
@benecito the PT100 daughter board has a 400 ohm reference resistor. So a value of R400 should give the same reading as without the R parameter. You can use fractional values such as R400.1. Very roughly, the reading in deg Kelvin will be proportional to the R value.
The maximum temperature deviation caused by the MAX31856 chip should be no more than 0.5C according to the datasheet. The reference resistor has 0.1% tolerance so the maximum error it introduces should be no more than about 0.25C. Hence the total error should be no more than 0.75C plus the error introduced by the tolerance of the PT100 and any relevant wiring resistance.
-
@dc42 thanks for the reply! If there is a 400 ohm resistor at least that part makes sense
I just tried using fractional values, but it did not work for me. Everything from R400 to R400.9 gives me the same reading with a change of about 0.7° if I go up to R401.
Did this change since RRF3.3?Overall I am still very happy with the precision I get within one printer! I'd just like to get all the printers I build to be as close to each other as possible. Right now they are within 1° of each other, but with chocolate that already makes quite a difference, so ideally I'd like to get them within 0.2° of each other and thus be able to ship them calibrated.
-
@benecito you are correct, the R value for PT100 sensors accepts integer values only. I will change this in RRF 3.5beta1, possibly even in RRF 3.4.2.
-
@benecito I've put candidate 3.4.2beta1 binaries including this fix at https://www.dropbox.com/sh/iic3wmqb1m0pj7r/AACh921ueffhGhhDR07z7M8Ea?dl=0. If you wish to use them, please upgrade to release 3.4.1 first, then when you have that working you can update to 3.4.2beta1.
-
@dc42 Good to know I'm not too stupid to use it, and thanks for sharing the beta!
I'll give it a try as soon as I find a little time!Sorry if I have to ask again, but wouldn't it be much easier vor everyone to be able to tune the temperatures by applying an actual offset instead of fiddling with ADC offsets or resistor values? Also I think this should not be very hard to implement.
-
@dc42 Just tried it and it works. Better than nothing but I'd still prefer the easier option!
-
@benecito said in Improve / optimize PT100 temperatures:
Sorry if I have to ask again, but wouldn't it be much easier vor everyone to be able to tune the temperatures by applying an actual offset instead of fiddling with ADC offsets or resistor values?
If there is an error in the reading, then the best way to correct it depends on the nature of the error. If the reference resistor isn't quite the right value, or the PT100 element isn't quite the right value, then adjusting the R parameter is the correct solution; because adding an offset would lead to reading errors at higher temperatures.