An accurate and flexible four-channel temperature sensor for instrumenting electronics

Jan 29, 2019

Project update 3 of 7

SenseTemp Accuracy Testing

I’m excited to show you all an example of SenseTemp TEC running a small thermal chamber, but you’ll have to wait until later this week for that update. In the meantime, I’ve been doing some accuracy measurements on SenseTemp and have some experimental results to share.

Test Setup

For this data collection, all four SenseTemp RTD elements were pressed against a large aluminum block by a rubber pad and weight. Therefore, all channels should report the same temperature. Note that the aluminum block’s temperature was not actively controlled — so its’ temperature slowly changes as the ambient environment does.

SenseTemp data was recorded every three seconds over a test duration of 80 minutes.

SenseTemp Temperature Data

This a plot of the raw test measurements from SenseTemp.

You can see SenseTemp’s temperature resolution of 0.034C in this graph. This measurement resolution is governed by the MAX31865 15-bit ADC, and the ratio between the 4.3 kOhm reference resistor and the 1 kOhm nominal RTD resistance.

Note that SenseTemp system accuracy is governed by the tolerances of the reference resistor and the RTD element, not their nominal values.

Calculating Error

Since the temperature of the aluminum block changes during this test, we cannot merely compare instantaneous samples with the mean to determine noise and error. Instead, we need to compensate for the changing block temperature before error calculation.

To do this, a rolling mean is calculated from the measurements of Channel 1. Since the time constant on the block is very long, its’ temperature changes very slowly — so a large sampling window can be used to average sample data and remove noise.

Calculating Rolling Mean

A sample window of 60 seconds (20 measurements) was used to calculate a rolling mean, and that derived data is plotted against the Channel 1 direct measurements. Note the normal time-offset of a rolling window mean has been removed by eliminating the first 10 samples (1/2 the window) of the rolling mean.

With this "ground truth" data, we can now calculate error and noise on the SenseTemp channels. Of course, this is a derived ground truth from Channel 1 data, so Channel 1 will show the least error and noise.

Comparing Rolling Mean to SenseTemp Data
Error between SenseTemp Data and Channel 1 Rolling Mean

There are some interesting patterns and trends in this data.

Error was also calculated after applying a rolling mean (with a window size of 4 samples) on each of the channel’s measurements.

Comparing Rolling Mean to Smoothed SenseTemp Data
Error between Smoothed SenseTemp Data and Channel 1 Rolling Mean

This smoothing does not change the Mean or RMS error but does reduce the maximum sample error and error standard deviation, due to the smoothing process creating measurement points with finer resolution than the MAX31865 15-bit ADC allows.

Summary of Results

Below is a table summarizing error results from this 80-minute long test. Due to Channel 1 being the source of ground truth, it shows no mean error and the lowest RMS error.

ChannelMaximum Sample ErrorMean ErrorRMS Error
10.039 C0.000 C0.013 C
20.056 C0.007 C0.016 C
30.096 C0.042 C0.045 C
40.071 C0.026 C0.029 C

One last note on the SenseTemp used for this test — this prototype was built with a 1% accurate reference resistor. Production SenseTemp hardware will be built with 0.05% rated reference resistors, which will result in even lower variance between channels than measured in this test.

Sign up to receive future updates for SenseTemp.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects