The last few months have been spent calibrating and tuning the four different temperature sensors available on Recore A5 and A6. To aid with the calibration, a dry well calibrator was created that is controlled with Recore and with results plotted in OctoPrint. Below is a video explaining how it was done. This post adds some details to the build and the calibration.
As explained in the video, there are 4 different sensors that can be used with Recore: Thermistor, Thermocouple, PT100 (using an amplifier) and PT1000. Both Revision A5 and A6 can get very accurate measurements, but A6 can use the upstream Klipper implementation for all sensors without any custom calculations. A5 requires the Intelligent-Agent branch of Klipper.
The dry well calibrator (sometimes called a dry block calibrator) is a chunk of highly temperature conducting material, for instance aluminum, that has holes that fit the temperature sensors to be calibrated well. It’s also important to keep the plane in which the sensors reach equal among the sensors, to get the same readings. One possible source of error in this implementation is the depth of the holes. The reference should have a hole of 20 x D, which for the SDL S385 is 6 x 20 = 120 mm, but achieving that with a 2 mm hole (for the thermocouple) was unfeasible, so a depth of 40 mm was chosen instead.
The dry well in the video was constructed from a 55 mm diameter x 300 mm cylinder of 6061 aluminum stock that was purchased on eBay. The heater is a 220 V, 500 W, 10.5 mm heater from Ali Express. The heater is controlled with a solid state relay ED24D3 from Sensata-Crydom (Digi-key Part number CC1825-ND). The PT1000 is a 31500989 from Heraeus Nexensos (Digi-key part number 1759-1044-ND) and the reference temperature sensor is an SDL model S385 from Sensing Devices Ltd. A model for the dry-well was created in FreeCad.
In the video, the reference temperature sensor is calibrated using de-ionized water with with ice cubes made of de-ionized water and boiling de-ionized water. The boiling point of water is determined using a barometric pressure senor from Seeed Studio (Digi-key part number 1597-101020812-ND). The uncertainty of the pressure sensor was given at +/- 8 m. The 1 mA of current is supplied by an HP 3245A and the voltage is measured by an HP 3458A.
The results achieved was within about 1 degree of each other for the 4 different sensors tested. It should be noted that even though temperature measurements seem simple to carry through, it was much work calibrating the reference, measuring the sensors several times, tuning the input values to the sensors and even creating models in SPICE to reverse engineer the effects on the inputs and model them in code for Klipper.
For those with a Recore A5, I will be updating the Intelligent Agent Klipper branch with the new input stage model, so a software update is needed. The new way of doing it is to disable the offset which makes the offset become a pull-down which is easy to model in code (in contrast with a pull-up to a voltage which is lower than the maximum input voltage).