Overview

The MAX31856 is an advanced 19-bit cold-junction compensated thermocouple-to-digital converter IC manufactured by Maxim Integrated (Analog Devices). Designed for high-accuracy temperature sensing in industrial furnaces, kilns, 3D printers, and environmental test chambers, it natively supports eight standard thermocouple types (K, J, N, R, S, T, E, and B).

Unlike older fixed K-type converters (such as MAX6675 or MAX31855), the MAX31856 features on-chip linearizing lookup tables for non-linear thermocouples, high-precision 19-bit19\text{-bit} resolution (0.0078125C0.0078125^\circ\text{C} per LSB), programmable 50 Hz/60 Hz50\text{ Hz} / 60\text{ Hz} AC mains filter rejection, and a bi-directional SPI interface (up to 5 MHz).

Quick reference

Operating voltage (VIN)3.3 V to 5.0 V DC (breakout includes 3.3V LDO regulator)
IC supply voltage (VDD)3.0 V to 3.6 V DC (3.3 V nominal)
InterfaceSPI Mode 1 or Mode 3 (up to 5 MHz)
Supported ThermocouplesK, J, N, R, S, T, E, B (configured via Register 0x01)
Probe Temperature Range210C to +1800C-210^\circ\text{C}\text{ to }+1800^\circ\text{C} (dependent on thermocouple type)
ADC Resolution19-bit (0.0078125C0.0078125^\circ\text{C} per LSB)
Cold-Junction Accuracy±0.7C\pm 0.7^\circ\text{C} over 40C+125C-40^\circ\text{C} \dots +125^\circ\text{C}
Line Noise Rejection50 Hz & 60 Hz programmable notch filter rejection
Fault DetectionOpen circuit, over/under temperature limits, short to GND/VCCV_{CC}

Pinout (TSSOP-14 Package & Breakout Header)

PinNameTypeDescription
1VINPowerSupply power input (+3.3 V to +5.0 V DC)
2GNDPowerGround reference (0 V)
3SDO / MISODigital OutputSPI Master Input Slave Output
4SDI / MOSIDigital InputSPI Master Output Slave Input
5CSDigital InputActive-Low SPI Chip Select
6SCKDigital InputSPI Serial Clock
7FLT / DRDYDigital OutputActive-Low Fault or Data Ready interrupt pin
+ / -Screw TerminalsAnalog InputThermocouple lead wire input terminals

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply Voltage (Module)VVINV_{VIN}3.33.3 / 5.05.5VPower rail with LDO
Active Supply CurrentICCI_{CC}1.22.0mAContinuous conversion mode
Cold-Junction AccuracyTCJ_accT_{CJ\_acc}-0.7±0.7\pm 0.7+0.7°C40C+125C-40^\circ\text{C} \dots +125^\circ\text{C}
Thermocouple ADC BitsResADCRes_{ADC}19bitsSigned 19-bit output
LSB Temperature StepLSBtempLSB_{temp}0.0078125°C1/128C1/128^\circ\text{C}
Conversion Time (60Hz)tconvt_{conv}143170185ms60Hz filter mode

Register Configuration & Thermocouple Selection

  • CR0 Register (0x00): Automatic Conversion mode (0x80), 50/60 Hz noise filter (0x01).
  • CR1 Register (0x01): Thermocouple Type Selection:
    • 0x00 = B Type
    • 0x01 = E Type
    • 0x02 = J Type
    • 0x03 = K Type (Default)
    • 0x04 = N Type
    • 0x05 = R Type
    • 0x06 = S Type
    • 0x07 = T Type

Wiring

MAX31856 PinArduino / MCUESP32Notes
VIN5V / 3.3V3.3VPower rail
GNDGNDGNDSystem ground
CSDigital D10GPIO 5SPI Chip Select
SDI (MOSI)Digital D11GPIO 23SPI MOSI
SDO (MISO)Digital D12GPIO 19SPI MISO
SCK (CLK)Digital D13GPIO 18SPI Clock

Example (Adafruit_MAX31856 Library)

cpp
#include <Adafruit_MAX31856.h>

// Use hardware SPI with CS on pin 10
Adafruit_MAX31856 maxthermo = Adafruit_MAX31856(10);

void setup() {
  Serial.begin(115200);
  Serial.println("Adafruit MAX31856 Thermocouple Test");

  if (!maxthermo.begin()) {
    Serial.println("Could not initialize MAX31856 sensor! Check SPI wiring.");
    while (1);
  }

  // Set thermocouple type to K-Type (options: MAX31856_TCTYPE_K, J, N, R, S, T, E, B)
  maxthermo.setThermocoupleType(MAX31856_TCTYPE_K);
  Serial.println("MAX31856 Initialized for K-Type Thermocouple.");
}

void loop() {
  float temp = maxthermo.readThermocoupleTemperature();

  uint8_t fault = maxthermo.readFault();
  if (fault) {
    if (fault & MAX31856_FAULT_OPEN) Serial.println("Fault: Thermocouple Open!");
    if (fault & MAX31856_FAULT_OVUV) Serial.println("Fault: Over/Under Voltage!");
  } else {
    Serial.print("Probe Temp: "); Serial.print(temp); Serial.println(" °C");
  }

  delay(1000);
}

Common mistakes

  • Leaving SDI (MOSI) disconnected: Unlike the read-only MAX31855, the MAX31856 requires a bi-directional SPI interface to receive configuration register settings (such as thermocouple type selection and 50Hz/60Hz noise filtering).
  • Mismatched thermocouple type selection in software: Setting MAX31856_TCTYPE_K when using a J-type probe introduces non-linear temperature errors exceeding ±20C\pm 20^\circ\text{C}.

Notes

  • MAX31856 vs MAX31855: MAX31856 supports 8 thermocouple types with bi-directional SPI control and 0.0078C0.0078^\circ\text{C} resolution; MAX31855 supports 1 thermocouple type (K-Type) read-only.

Assets & downloads