MAX31855

A K-type thermocouple amplifier breakout with cold-junction compensation that reports -200 °C to +1350 °C in 0.25 °C steps over read-only SPI, with open and short fault detection.

  • Chip supply3.0 V to 3.6 V (3.3 V typical)
  • Absolute maximum-0.3 V to 4.0 V on VCC
  • Range (K type)-200 °C to +1350 °C
  • Resolution14-bit thermocouple data at 0.25 °C; 12-bit cold junction at 0.0625 °C
MAX31855, A K-type thermocouple amplifier breakout with cold-junction compensation that reports -200 °C to +1350 °C in 0.25 °C steps over read-only SPI, with open and short fault detection.
In short

The MAX31855K turns a K-type thermocouple into a 14-bit, 0.25 °C reading over read-only SPI, accurate to ±2 °C from -200 °C to +700 °C, with flags for an open probe or a probe shorted to GND or VCC (Maxim MAX31855 datasheet Rev 2, pp. 1, 3, 9). The chip is a 3.0 V to 3.6 V part (p. 2); the Adafruit breakout adds a 3.3 V regulator and level shifting, so VIN takes 3 V to 5 V. Wire CLK, CS and DO; a conversion takes 100 ms at most (p. 4).

The MAX31855 is Maxim's successor to the MAX6675. It measures a thermocouple's tiny voltage, measures its own die as the cold junction, and outputs the compensated temperature as a signed 14-bit number in 0.25 °C steps, plus the die temperature in 0.0625 °C steps (Maxim datasheet Rev 2, pp. 1, 4). The K version covers -200 °C to +1350 °C (p. 12); J, N, T, S, R and E versions exist for other thermocouple types.

Its fault detection is the practical upgrade: bit D0 flags an open thermocouple, D1 a short to GND and D2 a short to VCC, and D16 is set whenever any of them is (p. 9). Because the chip checks for shorts to ground, T- must not be connected to GND (p. 7), and grounded-tip probes will not work.

The bare chip runs from 3.0 V to 3.6 V and is rated 4.0 V absolute maximum (p. 2). The Adafruit breakout carries a 3.3 V regulator with 10 µF bypass capacitors and level shifting (Adafruit product page), so it wires straight to an Uno or to a 3.3 V board.

MAX31855 pinout

tinkered.ai/components/max31855MAX31855VINPower3VoPowerGNDGroundDOSPI MISOCSSPI CS (active low)CLKSPI SCKT+Thermocouple +T-Thermocouple -
PinFunctionType
VINVin3 V to 5 V, equal to your board's logic levelpower in
3Vo3Vo3.3 Vpower out
GNDGNDpower in
DOSPI MISOLevel shiftedoutput
CSSPI CS (active low)input
CLKSPI SCKinput
T+Thermocouple +passive
T-Thermocouple -passive

How to wire the MAX31855

Pin by pin, for the board you have.

MAX31855Arduino UnoNote
VIN5V
GNDGND
CLKD13
DOD12
CSD10
Design this circuit on an Arduino Uno

MAX31855 code

Every example here compiles for its board.

Libraries: adafruit/Adafruit MAX31855 library
// MAX31855 on Arduino Uno: wiring and a free simulation at https://www.tinkered.ai/components/max31855
// MAX31855 on an Arduino Uno: VIN 5V, CLK D13, DO D12, CS D10 (hardware SPI)
#include <SPI.h>
#include <Adafruit_MAX31855.h>

const int PIN_CS = 10;
Adafruit_MAX31855 thermocouple(PIN_CS);  // hardware SPI: CLK and DO on the board's SPI pins

void setup() {
  Serial.begin(115200);
  delay(500);  // first conversion takes up to 100 ms
  if (!thermocouple.begin()) {
    Serial.println("MAX31855 did not start. Check wiring.");
    while (true) delay(10);
  }
  Serial.println("MAX31855 ready");
}

void loop() {
  double internalC = thermocouple.readInternal();
  double tempC = thermocouple.readCelsius();
  Serial.print("Board (cold junction): ");
  Serial.print(internalC, 2);
  Serial.print(" C   ");
  if (isnan(tempC)) {
    uint8_t e = thermocouple.readError();
    Serial.print("Fault:");
    if (e & MAX31855_FAULT_OPEN) Serial.print(" thermocouple open");
    if (e & MAX31855_FAULT_SHORT_GND) Serial.print(" shorted to GND");
    if (e & MAX31855_FAULT_SHORT_VCC) Serial.print(" shorted to VCC");
    Serial.println();
  } else {
    Serial.print("Thermocouple: ");
    Serial.print(tempC, 2);
    Serial.println(" C");
  }
  delay(1000);
}
Compiled for arduino:avr:uno on 2026-10-30

Before you wire it

Do
  • Match the thermocouple to the chip's letter: a MAX31855K needs a K-type probe (datasheet, p. 12).
  • Use an ungrounded (insulated) probe and keep T- off ground (p. 7); a probe touching a grounded part reads as a short-to-GND fault.
  • Check for faults on every read: readCelsius() returns NAN and readError() names the cause (pp. 9).
  • Read no faster than one conversion per 100 ms (p. 4).
Don’t
  • Never put more than 3.6 V on a bare MAX31855 board without a regulator; 4.0 V is its absolute maximum (p. 2).
  • Never splice the probe with copper wire; use thermocouple extension wire of the same type.
  • Never mount the board on or next to a heat source: it uses its own die temperature as the cold junction.
  • The 32-bit frame holds the 14-bit thermocouple temperature, the fault bit D16, the 12-bit internal temperature and the three fault bits D2 to D0 (datasheet, p. 9).
  • Several MAX31855 boards can share CLK and DO, each with its own CS.
  • In noisy environments, Adafruit suggests a 0.01 µF capacitor across the thermocouple leads (thermocouple guide, p. 7).
  • The chip assumes a linear thermocouple; at extreme temperatures you can apply the NIST polynomial to the raw voltage for extra accuracy (datasheet, p. 8).
  • SPI here is read-only: there is no MOSI pin, so DO is the only data line.

Specifications

Chip supply
3.0 V to 3.6 V (3.3 V typical)Maxim MAX31855 datasheet 19-5793 Rev 2, p. 2
Absolute maximum
-0.3 V to 4.0 V on VCCMaxim MAX31855 datasheet 19-5793 Rev 2, p. 2
Range (K type)
-200 °C to +1350 °CMaxim MAX31855 datasheet 19-5793 Rev 2, p. 12
Resolution
14-bit thermocouple data at 0.25 °C; 12-bit cold junction at 0.0625 °CMaxim MAX31855 datasheet 19-5793 Rev 2, p. 4
Accuracy (MAX31855K)
±2 °C from -200 to +700 °C and ±4 °C from +700 to +1350 °C, at -20 to +85 °C ambientMaxim MAX31855 datasheet 19-5793 Rev 2, p. 3
Cold-junction error
±2 °C over -20 to +85 °C, ±3 °C over -40 to +125 °CMaxim MAX31855 datasheet 19-5793 Rev 2, p. 4
Conversion time
70 ms typical, 100 ms maxMaxim MAX31855 datasheet 19-5793 Rev 2, p. 4
Supply current
900 µA typical, 1.5 mA maxMaxim MAX31855 datasheet 19-5793 Rev 2, p. 2
Interface and faults
Read-only SPI up to 5 MHz; D0 open, D1 short to GND, D2 short to VCC, D16 any faultMaxim MAX31855 datasheet 19-5793 Rev 2, pp. 4, 9
Breakout
3.3 V regulator with 10 µF bypass and level shifting; VIN 3 V to 5 VAdafruit MAX31855 breakout product page (product 269); Adafruit thermocouple guide (PDF), p. 6

From the MAX31855 product page and datasheet, published by Analog Devices (Maxim Integrated).

Common mistakes

  1. Probe shows 'short to GND' on a metal fixture

    Many cheap probes have a grounded tip, or the sheath touches a grounded pipe or oven chassis. The MAX31855 sees that as a fault (bit D1). Use an ungrounded probe or insulate the sheath.

  2. Readings off by a fixed amount

    Wrong thermocouple type gives the wrong slope; swapped leads read the wrong way. Check the probe is K-type for a MAX31855K and that the yellow (chromel) lead goes to +.

  3. Board warm, reading high

    The cold-junction reference is the chip itself. A breakout mounted on a hot enclosure wall shifts the result; readInternal() shows what the chip thinks the cold end is.

  4. Feeding a bare chip 5 V

    Unlike the MAX6675, the MAX31855 is a 3.3 V part with a 4.0 V absolute maximum (p. 2). Only breakouts with a regulator, like Adafruit's, accept 5 V.

MAX31855 questions

MAX31855 or MAX6675?

The MAX31855 reads below zero (-200 °C for the K version), has 14-bit data and reports open and shorted probes separately (datasheet, pp. 9, 12). The MAX6675 runs at 5 V and reads only 0 to 1024 °C. For new builds, pick the MAX31855.

Is the MAX31855 5 V compatible?

The chip is not: 3.0 V to 3.6 V, 4.0 V absolute maximum (p. 2). The Adafruit breakout has a 3.3 V regulator and level shifting, so it works from 3 V to 5 V and with 5 V logic.

Why do I get NAN?

A fault bit is set. readError() tells you which: 0x01 open thermocouple, 0x02 short to GND, 0x04 short to VCC. Check the terminal screws and that the probe is not grounded.

How accurate is the MAX31855K?

±2 °C from -200 °C to +700 °C and ±4 °C up to +1350 °C at -20 to +85 °C ambient (p. 3), plus the probe's own tolerance.

Can I use a J-type thermocouple with it?

Not with the K version: the conversion assumes the K slope of 41.276 µV/°C (p. 3). Buy the matching variant, such as the MAX31855J for J-type.

Build something with the MAX31855

  • Kiln controller

    Ramp and hold a kiln on a schedule through a solid state relay.

    Build this
  • Espresso boiler monitor

    Show boiler temperature and warn on a probe fault.

    Build this
  • Freezer to oven logger

    Log -40 °C to 300 °C with one probe.

    Build this
For AI assistants

This page as plain Markdown, for ChatGPT, Claude or your own agent. /components/max31855.md

What will you build with it?