MAX31855T with T type thermocouple slightly erratic readings

Hello,
my project requires -60C temperature monitoring and for some reason I can't recall any more I bought few MAX31855T with T type thermocouples from a reputable source (Farnell).

Using Teensy 3.2 (just for testing, it's 3.3V so no level shifters required) to talk to the MAX31855, no issues with communication, internal temperature reading is very steady, responds like supposed to, no issues.
However the probe readings are quite erratic, mostly fluctuate +/- 2C, but sometimes as much as -6~8C (and large spikes seem to be only towards low temperature), I'm testing them now in room temperature (+25C).
10n cap is soldered on the thermocouple inputs of the IC, it helped somewhat, reduced the fluctuation amplitude and made it less susceptible to RF noise (cell phone near the probe for instance).
I sample at 1sec intervals, increasing interval doesn't help, same issue present also at intervals below 1sec.

I also have K type thermocouples and 31855K, and that combo doesn't exhibit this behavior, just the T type.

Is this normal for T type thermocouples or I am missing something? Tried 3 different chips, same behavior.

I also tried putting on a shield (knitted mesh, stripped from an audio wire), grounded at IC, had zero impact on stability of the readings.

Please post the schematics. There's some kind of noise affecting Your project.
The code might be valuable.
The small variations could come from the last digit uncertainty in the ADC.
A link to the datasheet of exactly the temperature sensor You use is highly interesting.
Do You say You measure around minus 60 C?

this is one of the "T" tcs, I can't find the part number for the other type (also T) I had ordered, but they behave identically

here is a crude diagram:

code is simplest example sketch from Adafruits MAX31855 library, and I also tried this GitHub - Zanduino/MAX31855: Read thermocouple temperature using a MAX31855 converter , but result is exactly the same, I also thought maybe there is issue with the data coming into Teensy, so I tried lower SPI speeds (edited cpp of the latter library), but the result is the same, scope on both TC legs shows basically no noise, the only oddity is that scope will show the frequency of pulses on TC legs change from 13hz to 14hz on seemingly random intervals

also, by accident, discovered if I cover the small break out board with max31855 on it with my hands, without touching any pins, the fluctuations on the temperature signal decrease significantly, it starts to behave like the K version of the same chip I have, also, if I move away (just couple meters) from the table where the max31855 is connected to the pc, then the fluctuations increase in amplitude, but it behaves the same way with the shielded probe also...
I have 5 of either both T and K versions, so far tried only 2 of the T type, but the first K type I tested behaved normally, just a slight drift of the temperature, but less than 0.5C

and yes, minus 60C, down to -90C, absolute accuracy isn't as important as reliable and steady reading, and I'd rather figure out why these T version chips misbehave

#include <SPI.h>
#include "Adafruit_MAX31855.h"

#define MAXDO   12
#define MAXCS   15
#define MAXCLK  13

// initialize the Thermocouple
Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO);


void setup() {
  Serial.begin(112500);

  while (!Serial) delay(1); // wait for Serial on Leonardo/Zero, etc

  Serial.println("MAX31855 test");
  // wait for MAX chip to stabilize
  delay(500);
  Serial.print("Initializing sensor...");
  if (!thermocouple.begin()) {
    Serial.println("ERROR.");
    while (1) delay(10);
  }


  Serial.println("DONE.");
}

void loop() {
  // basic readout test, just print the current temp
   Serial.print("Internal Temp = ");
   Serial.print(thermocouple.readInternal());

   double c = thermocouple.readCelsius();
   if (isnan(c)) {
     Serial.println("Thermocouple fault(s) detected!");
     uint8_t e = thermocouple.readError();
     if (e & MAX31855_FAULT_OPEN) Serial.println("FAULT: Thermocouple is open - no connections.");
     if (e & MAX31855_FAULT_SHORT_GND) Serial.println("FAULT: Thermocouple is short-circuited to GND.");
     if (e & MAX31855_FAULT_SHORT_VCC) Serial.println("FAULT: Thermocouple is short-circuited to VCC.");
   } else {
     Serial.print("      probe = ");
     Serial.println(c);
   }
   //Serial.print("F = ");
   //Serial.println(thermocouple.readFahrenheit());

   delay(200);
}






It's a link to the sales site, telling how fantastic their product is but giving no technical data. What's the specified temperature interval? Lots are missing for further advice. Temperature sensors often use a reference resistor but You tell about SPI. Is this an absolute temperature device?

Yes. The way power is supplied, from where/what it comes often reveals weaknesses.

You tell Your thoughts and failed atempts. Sorry but it gives us no help, only create obstacles to find useful facts in the text.

Nice oscilloscope pictures but what do they show? No help for the moment.

what temperature interval has to do with how the chip is behaving? 25C it is sitting right now is very much within both ANY T type probe measurement range AND max31855 capability

scope pictures are to show the shape of pulses, that there is no odd noise in beginning or end of slopes, and that there is no noise on thermocouple leads

failed attempts are to tell that I don't expect to be spoonfed and that I am simply out of ideas, hence I posted the thread here

power source is PCs USB port to Teensy, and 3.3V from Teensy to max31855, both are clean, tried a lab power supply to power Teensy, and a separate 3.3V linear power supply for the max31855, same exact behavior
and again - on exact same Teensy, same code even, same PC USB power, the K type 31855 doesn't show these issues

But, did you get the MAX31855T designed for type T thermocouple? Is there an identifying code on the circuit board?

1 Like

A lot. You use it at minus 60 C You told.

You told about minus 60 C. That's very different.

Okey. Usually not the problem. Erros there gives values all over the place.

Good but it does not help us to the solution. Only the opposite.

Good. That rules out power supply noise.

Interesting. Please post links to their datasheets. Why not go for the K type 31855?

yes, these are 31855 with the T marked right on the IC

and I'm only doing testing, as was said in the original post and concluded from the serial plot picture, at room temperature at around 25C, so well within capabilities of T thermocouples and the ic

why am I using them? because I have 5 sets of them, and rather then throwing them out, I'd like to know if this behavior is normal or I am missing something

datasheet is the same for all types of 31855, no special notes regarding the T version - https://www.analog.com/media/en/technical-documentation/data-sheets/MAX31855.pdf

Is the MAX31855 sitting in the minus 60 C atmosphere?
The datasheet found didn't tell about the circuit operating temperature, only the measuring range.
From the link You supplied I read:
Operating Temperature Range......................... -40°C to +125°C

3rd time - this is all in room temperature, which is at 25C............

-60 was mentioned as planned measurement temperature, NOT where the 31855 would be sitting in, since then the whole principle of measurement using dissimilar metals would fall out of the window.......

Might be a long shot, but the 31855 has a cold junction compensator and air currents could affect reading. Try putting it in a simple enclosure to see if that helps. Also have you tried any smoothing algorithms?

The entire path from the junction to the amplifier must be of the same material as the thermocouple wires. That includes screw terminals, etc.

I already tried putting the tip of the TC on the IC casing, secure with some kapton tape and cover with paper and let it equalize for few minutes, no change in behavior, though TC temperature reading didn't reach the IC internal temperature, TC was always couple degrees below internal t, which is within spec

and to eliminate possibility of bad connections, 10n 0805 cap was soldered directly on IC pins together with TC leads, no change

and the dip in the reading seems to have a pattern, about 90% of time the interval is around 4~5 seconds, and I tried different sampling rate, different spi speeds, just to make sure the comms with uC didn't cause interference, and nothing seemed to have effect on this 4-5sec dip interval, the other oddity that made me think this issue is internal to the T chips is that it doesn't seem to happen in first aprox 6 to 8 seconds the chip is powered on

yes, I could use a software filter to deal with this, simple rolling array average seems to smooth out the result well enough, but, as I said, I'd rather fix the root issue (if that is even possible) instead of putting on band aids

will try induction filters in series on the tc leads, see if that has any effect

T and K thermocouple thermoelectric characteristics seem to be quite similar, so the internal differences in the T and K variants of the 31855 should be insignificant, so I thought maybe this has something to do with TC materials themselves (copper and constantan), but google searching led to nothing and such things should have been included in the Maxim datasheet, like additional filtering required for this or that type TC, but there is nothing apart from the 10n cap across T+ and T-, kind of makes me think I might have just a bad batch of the T variant chips on my hands

Hi, @wd11

Can I suggest you keep the thermocouple leads AWAY from the other leads, don't bunch them all together.

Note the PCB layout of a breakout module.
image

Tom... :grinning: :+1: :coffee: :australia:

For any soldering on the thermocouple wires/connections, you must use solder designed specifically for thermocouple use. IT contains 2% silver.

somehow I doubt that super special solder would make those 31855T work like they are supposed to, more likely that 2% silver helps wetting nickel alloyed wires of the K type probes

adding ferrite bead filters helped reduce the noise somewhat on the 31855T + T probe, but not completely, what made it stabilize was the next experiment

I took a cold pack (-1~0C) out of a freezer and tried to measure it with the T type probes and 31855T, and to my big surprise all 3 chips T type chips I tried, and 2 different T type probes with each of them, would show temperature for that ice pack at +5 to +6C, fluctuations went away, but the error stayed, right next to them I also placed 5$ chinese K type temperature sensor, and also a multimeter with K type probe, both the multimeter and cheap chinese thermometer showed around zero degrees, but all three 31855T chips had this big error

switched over to 31855K chip and K tc, and it red zero degrees like it was supposed to, and even same exact zero degrees with T type probes, which is about right considering thermal charts for T and K probes

so all 31855T chips swiftly flew into the bin, couldn't be bothered with them any more, case closed

1 Like

The data sheet gives the error on type T is +- 4deg C .
The big problem with thermocouples is that the output is around 30 microvolts /deg C for a type T and 40 for type K.
The amplifier also has cold junction compensation which is another temperature measuring device and can add errors .
Layout power supply etc can introduce noise too.
It is difficult to measure temperature accurately and requires care and expensive bits .

You do need to enclose and make a power supply for that chip and ensure that your cold junction is close to the chip ,( you have to supply your own cold junction sensor, which adds to the errors ) but yes that is an excellent chip .
You’d struggle for $100 and I’m unsure if code examples exist .
So you need to factor that in too, time to design PCB .. solder that chip … etc …test it .. calibrate it …all Costs money .

Hi,
Did we actually find out what the application was?

Was it going into a noisy environment?

Tom.. :grinning: :+1: :coffee: :australia:

the application was not scientific, it is simply monitoring how well around 100 freezers, cold rooms, or other devices that work at elevated temperatures (think autoclaves), are doing, I wanted a single type of device to make it easier from maintenance perspective and thought there might be an advantage to use the T type thermocouples

absolute accuracy is not important, repeatable measurements are, and those T chips behaved in an erratic fashion which is something I didn't want to build special solutions for, be it either hardware or software

using 50$ ICs isn't an option, it must be low cost, easily obtainable in case more or replacements are necessary, I picked the 31855 because I plan on using internal temp sensor data together with the probe (haven't actually started to test it yet), but the plan is to make a housing that would transfer heat into the 31855 case (if) the housing is mounted on the condenser coil of the freezer, and write simple logic on the data collection side that will tell if those 2 temperatures are behaving as expected
as I said, I don't really care about absolute temperature accuracy in this case, all I need is to see if the condenser is starting to warm up once some threshold is reached on the probe end, and if the condenser has been warm for a while, is the probe end getting colder - and compare these cycles over long period of time to see if there are trends that would show possible issues with the compressor
as you can see - I want early warning solution in case something is close to misbehaving before it actually does, plus some usage/history data, it is not a control type application, nor a science experiment

edit: it isn't a commercial endeavor either, it is simply improving own quality of life sort of application to reduce stress and be able to act proactively, not react in haste