← 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| Pin | Name | Functions | Notes |
|---|---|---|---|
| Vin | Power | POWER | 3-5VDC input |
| 3Vo | 3.3V Output | GND | 100mA available |
| GND | Ground | GND | Common ground for power and logic |
| SCK | SPI Clock | SPI | Input to the chip |
| SDO | Serial Data Out | SPI | Microcontroller In Sensor Out, for data sent from the MAX31865 to your processor |
| SDI | Serial Data In | SPI | Microcontroller Out Sensor In, for data sent from your processor to the MAX31865 |
| CS | Chip Select | SPI | Drop low to start an SPI transaction, input to the chip |
| RDY | Ready | — | 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
| Pin | Arduino Uno R3 | ESP32 DevKitC (WROOM-32) | Notes |
|---|---|---|---|
| Vin | +5V | 3V3 | Logic 3-5 V (regulated breakout) |
| GND | GND | GND | |
| SCK | D13 (SCK) | GPIO18 | |
| MOSI | D11 (MOSI) | GPIO23 | |
| MISO | D12 (MISO) | GPIO19 | |
| CS | D10 | GPIO5 | |
| RDY | - | - | Optional data-ready interrupt |
Typical uses
- Reading PT100 / PT1000 platinum RTDs
- Precision / high-temperature sensing