← All parts

Adafruit MAX31865 RTD Amplifier

AdafruitArduino

A breakout board for the MAX31865 RTD amplifier, providing SPI communication and support for 2-wire, 3-wire, and 4-wire RTDs.

In stock

Specifications

3
Operating Voltage
3-5VDC (Vin) / 3.3V (3Vo)
Logic Level
3-5V
Gpio Count
4 SPI pins, plus CS and RDY

Pinout

8
PinNameFunctionsNotes
VinPower
POWER
3-5VDC input
3Vo3.3V Output
GND
100mA available
GNDGround
GND
Common ground for power and logic
SCKSPI Clock
SPI
Input to the chip
SDOSerial Data Out
SPI
Microcontroller In Sensor Out, for data sent from the MAX31865 to your processor
SDISerial Data In
SPI
Microcontroller Out Sensor In, for data sent from your processor to the MAX31865
CSChip Select
SPI
Drop low to start an SPI transaction, input to the chip
RDYReady
Data-ready indicator pin

Interactive pinout

Highlight:
Arduino

Click a pin to copy its name · tap a tag above to spotlight a bus.

Starter code

Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.

Arduino (C++)

Arduino library: Adafruit MAX31865 library

arduino
// MAX31865 RTD (PT100/PT1000) amplifier (SPI) — community starter example
#include <Adafruit_MAX31865.h>

#if defined(ESP32)
  Adafruit_MAX31865 rtd = Adafruit_MAX31865(5);    // CS=GPIO5 (hardware SPI)
#else
  Adafruit_MAX31865 rtd = Adafruit_MAX31865(10);   // CS=D10
#endif

#define RREF      430.0    // 430 for PT100 board, 4300 for PT1000
#define RNOMINAL  100.0    // 100 for PT100, 1000 for PT1000

void setup() {
  Serial.begin(115200);
  rtd.begin(MAX31865_3WIRE);   // or _2WIRE / _4WIRE
}

void loop() {
  Serial.print("T="); Serial.print(rtd.temperature(RNOMINAL, RREF)); Serial.println(" C");
  delay(1000);
}

MicroPython

python
# MAX31865 (ESP32) — community starter example
# driver: a MAX31865 MicroPython port; raw register read otherwise
from machine import Pin, SPI
import time

spi = SPI(2, baudrate=500000, polarity=0, phase=1, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
cs = Pin(5, Pin.OUT, value=1)

def read16(reg):
    cs.value(0)
    spi.write(bytes([reg]))
    d = spi.read(2)
    cs.value(1)
    return (d[0] << 8) | d[1]

while True:
    rtd = read16(0x01) >> 1            # raw RTD ratio
    print("rtd", rtd)
    time.sleep(1)

Wiring

PinArduino Uno R3ESP32 DevKitC (WROOM-32)Notes
Vin+5V3V3Logic 3-5 V (regulated breakout)
GNDGNDGND
SCKD13 (SCK)GPIO18
MOSID11 (MOSI)GPIO23
MISOD12 (MISO)GPIO19
CSD10GPIO5
RDY--Optional data-ready interrupt

Typical uses

  • Reading PT100 / PT1000 platinum RTDs
  • Precision / high-temperature sensing

Related parts

6