MAX31865 Breakout board not working properly

I recently bought some Max31865 breakout boards on Aliexpress (the black pcb ones) and tried to connect a 2 wires PT1000 to an Arduino Uno.
I soldered the 2 wires jumper close at the top right corner and connected PT1000 wires as shown in the image.

The thing is that it gives me random resistance values.
I triple checked pins and tried both software and hardware SPI, but it still won't work properly.
Got the same issue on a different max board.
Could you please tell me what could be the problem ?

My pin connexions are
Vin -> 3.3v
Gnd -> Gnd
3.3v ->nothing
CLK -> D13
SDO -> D12
SDI->D11
CS->D10
RDY-> nothing

Could the problem be the PT1000 i'm using ?

It doesn't have positive or negative wires.
The way i understand it, the chip should give me like 0°C even with a regular 1k ohm resistor, am i wrong ?

Here's the code i used to test it.

#include <Adafruit_MAX31865.h>

// Use software SPI: CS, DI, DO, CLK
//Adafruit_MAX31865 max = Adafruit_MAX31865(10, 11, 12, 13);
// use hardware SPI, just pass in the CS pin
Adafruit_MAX31865 max = Adafruit_MAX31865(10);

// The value of the Rref resistor. Use 430.0!
#define RREF 430.0


void setup() {
  Serial.begin(115200);
  Serial.println("Adafruit MAX31865 PT100 Sensor Test!");
  max.begin(MAX31865_2WIRE);  // set to 2WIRE or 4WIRE as necessary
}


void loop() {
  uint16_t rtd = max.readRTD();
  Serial.print("RTD value: "); Serial.println(rtd);
  float ratio = rtd;
  ratio /= 32768;
  Serial.print("Ratio = "); Serial.println(ratio,8);
  Serial.print("Resistance = "); Serial.println(RREF*ratio,8);
  Serial.print("Temperature = "); Serial.println(max.temperature(100, RREF));

  // Check and print any faults
  uint8_t fault = max.readFault();
  if (fault) {
    Serial.print("Fault 0x"); Serial.println(fault, HEX);
    if (fault & MAX31865_FAULT_HIGHTHRESH) {
      Serial.println("RTD High Threshold"); 
    }
    if (fault & MAX31865_FAULT_LOWTHRESH) {
      Serial.println("RTD Low Threshold"); 
    }
    if (fault & MAX31865_FAULT_REFINLOW) {
      Serial.println("REFIN- > 0.85 x Bias"); 
    }
    if (fault & MAX31865_FAULT_REFINHIGH) {
      Serial.println("REFIN- < 0.85 x Bias - FORCE- open"); 
    }
    if (fault & MAX31865_FAULT_RTDINLOW) {
      Serial.println("RTDIN- < 0.85 x Bias - FORCE- open"); 
    }
    if (fault & MAX31865_FAULT_OVUV) {
      Serial.println("Under/Over voltage"); 
    }
    max.clearFault();
  }
  Serial.println();
  delay(1000);
}

Solder both 2 wire jumpers.

Hi,
Replace the PT1000, with a 1K resistor.
To verify that you have 1000 Ohms to measure.

Try a 0.1uF cap across the PT1000 terminals.

Have you got it configured for 2 wire measurement?

Tom... :slight_smile:

Hi,
This is 4wire connection


For two wire you need to bridge the two pairs of 2-4 wire pads.

Tom.. :slight_smile:

My PT1000s give me good values with a multimeter and i'm using 1k ohm resistor to test the breakout board. I soldered both jumpers (in red on the picture) and now i'm getting, with RREF set to 430 and this part set to 1000 ohms

Serial.println(max.temperature(1000, RREF));

:

With F- and F+ shorted with wire only
AND
with both the same wire and 1k ohm resistor between RTD+ and RTD- :

RTD value: 10460
Ratio = 0.31921386
Resistance = 137.26196289
Temperature = 96.78

when only 1k ohm resistor between RTD+ and RTD- :

RTD value: 32767
Ratio = 0.99996948
Resistance = 429.98687744
Temperature = 2085.30
Fault 0x80
RTD High Threshold

What am i doing wrong ?

Hi,
For PT1000 you need 4300R as the reference, you have to specify PT100 or PT1000 when you order the board.

Tom.... :slight_smile:

I think you found the issue.
I'm getting

RTD value: 16791
Ratio = 0.51242065
Resistance = 220.34088134
Temperature = 334.41

with a 220 ohm resistor

Now, let's come to my second question :

I've bought very precise 4.99k ohms 0.01% tolerance resistors for this purpose.
this type

Can i remove the 430 ohm resistor on the board and solder mine instead ?

Hi,
Yes, then make your calibration adjustments in your code.

Tom... :slight_smile:

Ok i replaced RREF by 4990 and a mixture of ice and water gives me 0.01°C

Thanks for the help guys. :slight_smile: