UNO and MAX31855 J-Type Thrmocoupler

Hi,
I have a Adafruit Thermocouple Amplifier MAX31855 breakout board.
As we only use J-Type thermocouples, I have replaced the MAX31855K with the MAX31855J.
Using the sketch provided, my temperature readings are approx +10 C higher that actual temperature being read.
I see from the MAX31855 datasheet that the Sensitivity of the K-Type is 41.276 (μV/°C) and the J-Type is 57.953 (μV/°C).
Where would I be able to change this in the sketch examples / library?
Is it possible to read the faults, if any, from the MAX31855?

Example Sketch:

/*************************************************** 
  This is an example for the Adafruit Thermocouple Sensor w/MAX31855K

  Designed specifically to work with the Adafruit Thermocouple Sensor
  ----> https://www.adafruit.com/products/269

  These displays use SPI to communicate, 3 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

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

// Default connection is using software SPI, but comment and uncomment one of
// the two examples below to switch between software SPI and hardware SPI:

// Example creating a thermocouple instance with software SPI on any three
// digital IO pins.
#define DO   3
#define CS   4
#define CLK  5
Adafruit_MAX31855 thermocouple(CLK, CS, DO);

// Example creating a thermocouple instance with hardware SPI (Uno/Mega only)
// on a given CS pin.
//#define CS   10
//Adafruit_MAX31855 thermocouple(CS);

void setup() {
  Serial.begin(9600);
  
  Serial.println("MAX31855 test");
  // wait for MAX chip to stabilize
  delay(500);
}

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

   double c = thermocouple.readCelsius();
   if (isnan(c)) {
	  
	   
     Serial.println("Something wrong with thermocouple!");
   } else {
     Serial.print("C = "); 
     Serial.println(c);
   }
   //Serial.print("F = ");
   //Serial.println(thermocouple.readFarenheit());
 
   delay(1000);
}

Readings from Serial Monitor:
Reading ambient temperature of 22.7C

Internal Temp = 35.56
C = 32.00
Internal Temp = 35.56
C = 32.00
Internal Temp = 35.56
C = 31.75
Internal Temp = 35.56
C = 32.25
Internal Temp = 35.63
C = 32.00
Internal Temp = 35.56
C = 32.25
Internal Temp = 35.56
C = 32.00
Internal Temp = 35.63
C = 32.25

Any assistance with this is greatly appreciated.

Hi,

I do not know much about the amplifier but a little bit about thermocouples:

what is the difference (conceptual I mean; the different readout is evident) in beetwen
"thermocouple.readInternal()" and "thermocouple.readCelsius()"?

Regards

Hi vffgaston,
I don't quite understand?

Hi,

As far as I know, the amplifier (MAX31855) has to do the folowing:

  1. Linearizes the thermocouple reading (i.e.: the voltage that you can measure between the two wires). Although the signal -voltage- is almost proportional to the temperature -difference- between the hot and cold junnctions, is cheap to fully convert it.

  2. Adds to the temperature difference the ambient temperature (cold junction).

What of these signals do the function calls get?

Regards.